Skip to main content

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.

Headers

NameTypeRequiredDescription
x-api-keystringYesYour Sixtyfour API key
Content-TypestringYesapplication/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.

Configure the webhook block

The webhook block is configured inside the workflow editor. It defines the shape of the data your workflow expects.
Spec fieldTypeRequiredDescription
input_schemaobjectRecommendedMap of column name → field schema. Declares the columns the workflow expects so they can be referenced by downstream blocks.
webhook_inputstring (JSON)NoDefault sample payload used when the workflow is run without an external POST (e.g. test runs in the editor).
dataframe_typestringYesLEAD 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

FieldTypeDescription
webhook_payloadarray or objectInput data for the workflow. Can be a list of records (multi-row) or a single object (one row).
specs_overrideobjectOptional. 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.