Configure an automation
Choose a project, describe the task, select an Architect effort or another available model, and set credit, duration and delivery limits. Select only the connections the task needs. Organization project automations require workspace-shared connections. Google Drive accounts cannot be used by automations. Each event starts a separate conversation owned by the automation creator. Its history and result require that owner’s current workspace and project access. Changes the run makes to the project retain the project’s normal visibility. An accepted event pins the automation revision and model. Edits apply to future events. Edits made in the browser keep the automation bound to the credential that created it; an update made with an API key binds it to that key. Pausing stops new admissions and revokes active runs at the next authority boundary. Removing membership, revoking the original API key or disconnecting an account also removes its authority. A browser-created automation does not depend on its browser session staying alive. The duration starts at acceptance and includes queue and question time. Automated runs wait while another project agent is active. A test event is a paid run with the same limits.Credit limits use Pascal’s existing runtime. Non-Pro turns stop between model rounds,
so the last round can exceed the threshold. Pro checks each model call against its
budget; sandbox usage is settled separately and can take the total above it. External
providers can charge separately. Daily admission reserves each accepted run’s configured
maximum for a rolling 24 hours, including failed and cancelled runs.
REST setup
Use a workspace-scoped human-script API key from Settings. Agent keys and OAuth scene grants cannot create persistent delegations or manage connection credentials. The UI and API use the same command handler.engine: { type: 'model', modelId: '...' } for another model returned by
GET /api/workspace/automations?workspaceId=.... Disabled or changed models are
refused; Pascal does not silently substitute another model.
Update with action: 'update', the automation id, its current revision, and a
complete specification. A stale revision returns 409. Reveal signing secrets with
action: 'reveal'; add rotate: true to replace the incoming webhook secret.
Send a signed event
The event containstype, optional ISO time, and JSON data, totaling at most
32 KB. Project, instructions and limits cannot be overridden by the event.
runId, duplicate and an authenticated statusUrl. It confirms durable acceptance,
not successful execution.
One source event creates one run even with concurrent deliveries. A different payload
under an existing ID returns 409. A replay after an automation update returns the first
run and revision. A failed run is not automatically run again. A launch that fails before
the agent starts, for example while no executor is available, is retried on later ticks until
the deadline; a refusal such as a changed model fails the run.
Inspect and control a run
PollGET /api/project-runs/{runId} with the owner’s current workspace credential.
States are queued, running, waiting, completed, failed and cancelled.
The response includes the canonical responseId, conversation identity, result,
saved-version and usage information when available, and callback delivery status.
Read large outputs through the existing /v1/responses/{responseId} API.
Cancel with { action: 'cancel', id: runId }. Completed scene changes and external
actions are not undone. Answer a waiting question’s returned interactionId:
action: 'run' with specification, event and eventId,
without creating an automation. Direct REST and MCP runs share the event identity
within the owner/project; each saved automation has its own namespace. A direct run with
a callback returns callbackSecret to the authenticated REST caller, including when
replaying the same admission after a lost response.
Receive completion events
An optional callback receives JSON withid, source, type, time and
data. Types are project.run.completed, project.run.failed and
project.run.cancelled; data contains the run result.
Verify the same signature headers against the callback secret, using the exact body
and a five-minute timestamp window. Record delivery IDs durably and acknowledge duplicates
with 2xx. Every retry uses the same ID and body with a fresh timestamp and signature.
Pascal makes up to six attempts, with delays of one minute, five minutes, 30 minutes,
two hours and 12 hours.
Callback retries only resend results. They never start the agent again. Delivery stops
if the owner loses access, the original credential is revoked, the automation is paused
or its callback destination changes. Callback URLs must be public HTTPS on port 443,
without credentials, query strings, fragments or redirects.
MCP and discovery
The hosted inventory includes connection setup, tool approval, automation management, and run start/inspect/cancel/answer operations. Management tools require a full-authority human-script key. Secrets are omitted from model results; setup links to Pascal’s UI. Use a saved automation for callbacks configured through MCP, or retrieve a direct run’s signing key through an authenticated REST admission replay. Discover approved custom tools withlist_connector_actions and invoke them with
call_connector_tool, an explicit external-effect operation with an idempotency key.
The read-only run_connector_action path cannot invoke them. For
operation_outcome_unknown, inspect the external service before issuing a new key.
OpenAPI and the
MCP inventory describe the supported operations.
Public discovery does not publish workspace connection details, automations or secrets.