EIGENN.
docsguidesapichangelogpricingsign in
EIGENN.

Workflows API

Start a workflow run from the API, send a chat turn, and poll the run for its status and steps.

The public API can start a run of a published workflow and report what that run did. It cannot create, edit, or deploy a workflow. Build workflows in the Workflows product area, then start them from your own systems.

Every operation is asynchronous. A workflow can pause for a person to approve a customer-facing action, so a run has no bounded completion time. Each call returns a run identifier that you poll.

Scopes

OperationRequired scope
POST /workflows/{id}/executeworkflows.write
POST /workflows/{id}/chatworkflows.write
GET /workflows/runs/{executionId}workflows.read

Both OAuth tokens and API keys are accepted. See Authentication.

Start a run

POST /workflows/{id}/execute

The path id is the workflow. The run uses the promoted version, not the draft.

Request

FieldTypeDefaultDescription
triggerTypeinvoice_overdue, manual, webhook, or payment_failedmanualThe trigger that this call asserts. It must match a trigger that the workflow declares.
triggerDataobject{}Data that the run starts with.
idempotencyKeystring, 1 to 255 charactersnoneRepeat calls with the same key and workflow collapse to one run.

Record identifiers inside triggerData resolve against your team only. A request that names another team's record is rejected.

Supply an idempotencyKey on any caller that can retry. Without it, a retry starts a second run and the workflow does its work twice.

curl --request POST \
  --url https://api.eigenn.io/v1/workflows/9c1e4c2a-0000-4000-8000-000000000000/execute \
  --header "Authorization: Bearer ${EIGENN_API_KEY}" \
  --header 'Content-Type: application/json' \
  --data '{
    "triggerType": "invoice_overdue",
    "triggerData": { "invoiceId": "3f2b1c4d-0000-4000-8000-000000000000" },
    "idempotencyKey": "invoice-chase-example"
  }'

Response

{
  "executionId": "0b8f...",
  "runId": "job_71f2...",
  "queuedAt": "2026-07-11T14:02:11.000Z",
  "status": "queued"
}

status is always queued. It confirms that Eigenn accepted and enqueued the run. It is not proof that any step completed.

Use executionId to poll the run. Use runId to correlate the run with worker logs when you contact support.

Send a chat turn

POST /workflows/{id}/chat

A chat turn starts a run from a conversational message. The workflow must declare a manual trigger. A workflow configured for a webhook or a schedule is refused.

Request

FieldTypeRequiredDescription
messagestring, 1 to 8,000 charactersYesThe user's turn. The workflow receives it as trigger data under message.
conversationIdstring, 1 to 255 charactersNoGroups turns into one conversation. Eigenn echoes it back and passes it to the workflow. Omit it to start an unlinked turn.
triggerDataobjectNoExtra context merged alongside the message. It cannot overwrite message.
idempotencyKeystring, 1 to 255 charactersNoRepeat calls with the same key collapse to one run.

Response

{
  "executionId": "0b8f...",
  "conversationId": "conv-7f3a",
  "queuedAt": "2026-07-11T14:02:11.000Z",
  "status": "queued"
}

The reply is not in this response. A chat turn is not synchronous, because the workflow can pause for a person to approve what it drafted. Poll the run for the result.

Poll a run

GET /workflows/runs/{executionId}

Returns the run, its current node, and its recorded steps.

FieldDescription
executionIdThe run
workflowIdThe workflow that produced the run
statuspending, running, waiting, completed, failed, or canceled
currentNodeIdThe node the run is at, or null
triggerTypeThe trigger that started the run
createdAt, completedAtTimestamps, or null
stepsEach step with its nodeId, status, startedAt, completedAt, and errorMessage

waiting means the run is paused, most often for a person to approve a customer-facing action. It does not mean the run is stuck. Use Workflow Pauses to resolve the checkpoint.

Poll with backoff. A run that waits for a person can stay in waiting for as long as the approval takes.

Errors

These operations return 400, 401, 403, 404, 409, 422, 429, and 500.

StatusCommon cause
400The request body failed validation
403The token lacks workflows.read or workflows.write
404The workflow or run does not exist in your team
409The asserted trigger does not match the workflow, or an idempotency key is in flight
422Trigger data named a record that your team does not own
429A rate limit applied. Respect Retry-After

See Errors and Safe Retries and Rate Limits.

Not in the public API

The public contract has no operation that:

  • lists or searches workflow definitions
  • creates, updates, or deletes a workflow
  • deploys or promotes a version
  • lists execution history across runs
  • resumes or cancels a workflow pause

Use the Workflows product area for those tasks. Do not call private browser requests from an external integration.

MCP boundary

The remote MCP endpoint gives scoped finance tools, resources, and prompts. It does not give workflow-builder operations or execution history.

An MCP client can prepare input for a workflow with the permitted customer, invoice, transaction, report, and search tools. It is not a workflow execution API.

Related Pages

  • Workflows
  • Workflow Executions
  • Workflow Pauses
  • Workflow Outcomes
  • MCP
  • API Reference

Webhooks API Status

Separate provider callback endpoints from the outbound subscription API that public v1 does not include now.

Migrate Data Into Eigenn

Connect source systems and backfill transaction history, but do not use Eigenn as a replacement general ledger.

On this page

ScopesStart a runRequestResponseSend a chat turnRequestResponsePoll a runErrorsNot in the public APIMCP boundaryRelated Pages

Eigenn docs

current product

Overview
Overview
OverviewAccount PreferencesApproval PoliciesAssistant AutomationAssistant Command CenterAssistant Workspace and Saved WorkBank ConnectionsBilling and UsageBudgets and ForecastCommand CenterCustomer FieldsCustomer LifecycleCustomer RecordsCustomersDeveloper PlatformDocument Processing and ExtractionFiles and Document VaultFinancial Analytics and ReportsFinancial OverviewInbox and ApprovalsInvoice InsightsInvoice ProductsInvoicesMarketplace IntegrationsNotifications and BrandingOnboarding and SupportOverviewPlanning Data and DimensionsPlanning Models and FormulasPlanning Time and ActualsPlanning UncertaintyPlanning Versions and CollaborationPlanning Views and ExportsReceivablesReceivables AnalyticsReceivables ControlsScenario PlanningSecurity and AccessSettings OverviewStress TestsTeams and OrganizationsTone Profiles and ExperimentsTransaction Categories and RulesTransaction CodingTransactionsWeekly Finance RitualWorkflow ExecutionsWorkflow OutcomesWorkflow PausesWorkflows
OverviewBuild a Driver-Based Planning ModelBuild and Review a ForecastBuild Your First WorkflowCollaborate on a Planning ModelCompare and Share Planning ScenariosConfigure Approval PoliciesConfigure Assistant OperationsConfigure Customer FieldsConfigure Notifications and BrandingConfigure Planning Time and ActualsConfigure Receivables ControlsConnect Planning Data and ActualsConnect Transaction RecordsCreate and Manage CustomersCreate and Send InvoicesCreate Your First Planning ModelDeveloper API SetupFirst Cash ReviewInvoice Collection WorkflowMaintain Transaction RulesManage Security and BillingManage Team AccessManage the Invoice LifecycleMCP WorkflowsMonitor and Recover WorkflowsOrganize and Share DocumentsProcess Inbox ItemsReconcile and Categorize TransactionsReview a Customer Finance RecordReview, Restore, and Export a Planning ModelRun a Finance Operating ReviewRun a Receivables Tone ExperimentRun a Runway Stress TestRun Planning Uncertainty AnalysisRun Your First Command Center ReviewSave and Share Assistant WorkSet Up a WorkspaceTroubleshoot Account AccessWebhook DeliveryWeekly CFO Review
OverviewIntegrationsMCPSDKsWebhooks
OverviewAuthenticationBank Accounts APICustomers APIErrorsForecasts and Stress Tests APIInvoice Payments APIInvoices APIPaginationRate LimitsRemote Tracker API StatusTracker Categories APITracker Entries and Timers APITracker Projects APITransactions APIWebhooks API StatusWorkflows API
Overview
Overview