Use Case
Send data into Sixtyfour from an external system to start a workflow run. Use incoming webhooks to wire CRMs, schedulers, internal tools, or any service that needs to kick off enrichment automatically — no manual upload required.
An incoming webhook is a workflow whose first block is the webhook source block. POST a payload to /workflows/run, and that payload becomes the workflow’s input dataset.
| Name | Type | Required | Description |
|---|
| x-api-key | string | Yes | Your Sixtyfour API key |
| Content-Type | string | Yes | application/json |
Incoming webhooks require API key authentication. JWT (dashboard session) authentication is rejected when sending a webhook payload.
Error Responses
For error response shapes (400, 422, etc.), see Handling Errors.
The webhook block is configured inside the workflow editor. It defines the shape of the data your workflow expects.
| Spec field | Type | Required | Description |
|---|
input_schema | object | Recommended | Map of column name → field schema. Declares the columns the workflow expects so they can be referenced by downstream blocks. |
webhook_input | string (JSON) | No | Default sample payload used when the workflow is run without an external POST (e.g. test runs in the editor). |
dataframe_type | string | Yes | LEAD or COMPANY. Determines which downstream blocks can consume the output. |
Each row in your POSTed payload becomes one row in the workflow’s input dataset. Columns not declared in input_schema are still passed through and surfaced as advisory columns to downstream blocks.
See the Workflow Blocks reference for where this fits in the block catalog.
Trigger a workflow run
POST your payload to /workflows/run with the workflow ID as a query parameter.
POST https://api.sixtyfour.ai/workflows/run?workflow_id={workflow_id}
Request Body
| Field | Type | Description |
|---|
webhook_payload | array or object | Input data for the workflow. Can be a list of records (multi-row) or a single object (one row). |
specs_override | object | Optional. Override specs of the source block. See the workflow editor’s “Workflow API Reference” for block-specific options. |
Example Request
curl -X POST "https://api.sixtyfour.ai/workflows/run?workflow_id=wf_abc123" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"webhook_payload": [
{
"company_name": "Acme Corp",
"website": "acme.com",
"industry": "Technology"
},
{
"company_name": "TechStart Inc",
"website": "techstart.io",
"industry": "Software"
}
]
}'
Response (200)
{
"status": "queued",
"workflow_id": "wf_abc123",
"job_id": "run_xyz789",
"cache_config": null
}
Use the returned job_id to track execution. See Workflow Execution for status, results, and cancellation endpoints.
Rules and constraints
- Source block must be
webhook. Workflows whose source block is anything else cannot be triggered with webhook_payload.
- API key authentication only. JWT (dashboard session) auth is rejected when sending
webhook_payload.
read_csv source blocks cannot be triggered via API. Switch to a webhook source block.
- Payloads missing required columns from
input_schema, or malformed JSON, are rejected with a validation error.
- Workflows must have exactly one source block. The webhook block is consumed once per run.
Receiving results
Incoming webhooks only handle the trigger. To receive workflow output back at your URL, add an outgoing_webhook block to the workflow — see Outgoing Webhooks.
Alternatively, poll for completion and download results manually via the Workflow Execution endpoints.