curl -X POST "https://api.encrata.com/api/workflows" \
-H "Authorization: Bearer YOUR_DASHBOARD_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Lead enrichment pipeline",
"trigger": { "type": "webhook" },
"steps": [
{ "id": "step1", "type": "email_lookup", "config": { "mode": "identity", "input": "{{trigger.email}}" } },
{ "id": "step2", "type": "condition", "config": { "field": "steps.1.result.person.company", "operator": "is_not_empty" } },
{ "id": "step3", "type": "email_lookup", "config": { "mode": "breaches", "input": "{{trigger.email}}" } },
{ "id": "step4", "type": "webhook", "config": { "url": "https://hooks.example.com/enriched", "method": "POST" } }
]
}'
import requests
resp = requests.post(
"https://api.encrata.com/api/workflows",
headers={"Authorization": "Bearer YOUR_DASHBOARD_TOKEN"},
json={
"name": "Lead enrichment pipeline",
"trigger": {"type": "webhook"},
"steps": [
{
"id": "step1",
"type": "email_lookup",
"config": {"mode": "identity", "input": "{{trigger.email}}"},
},
{
"id": "step2",
"type": "email_lookup",
"config": {"mode": "breaches", "input": "{{trigger.email}}"},
},
],
},
)
print(resp.json())
{
"id": "6f1c2e94-2b6a-4a1e-9b3a-6c9f0f2a1d77",
"user_id": "3f8c1a22-9e41-4b0d-8d77-5a6b7c8d9e01",
"name": "Lead enrichment pipeline",
"status": "draft",
"trigger": { "type": "webhook" },
"steps": [
{ "id": "step1", "type": "email_lookup", "config": { "mode": "identity", "input": "{{trigger.email}}" } },
{ "id": "step2", "type": "email_lookup", "config": { "mode": "breaches", "input": "{{trigger.email}}" } }
],
"run_count": 0,
"created_at": "2026-06-01T10:00:00Z",
"updated_at": "2026-06-01T10:00:00Z"
}
Workflows
Create Workflow
Create a new automation workflow with a trigger and steps. Dashboard-only.
POST
/
api
/
workflows
curl -X POST "https://api.encrata.com/api/workflows" \
-H "Authorization: Bearer YOUR_DASHBOARD_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Lead enrichment pipeline",
"trigger": { "type": "webhook" },
"steps": [
{ "id": "step1", "type": "email_lookup", "config": { "mode": "identity", "input": "{{trigger.email}}" } },
{ "id": "step2", "type": "condition", "config": { "field": "steps.1.result.person.company", "operator": "is_not_empty" } },
{ "id": "step3", "type": "email_lookup", "config": { "mode": "breaches", "input": "{{trigger.email}}" } },
{ "id": "step4", "type": "webhook", "config": { "url": "https://hooks.example.com/enriched", "method": "POST" } }
]
}'
import requests
resp = requests.post(
"https://api.encrata.com/api/workflows",
headers={"Authorization": "Bearer YOUR_DASHBOARD_TOKEN"},
json={
"name": "Lead enrichment pipeline",
"trigger": {"type": "webhook"},
"steps": [
{
"id": "step1",
"type": "email_lookup",
"config": {"mode": "identity", "input": "{{trigger.email}}"},
},
{
"id": "step2",
"type": "email_lookup",
"config": {"mode": "breaches", "input": "{{trigger.email}}"},
},
],
},
)
print(resp.json())
{
"id": "6f1c2e94-2b6a-4a1e-9b3a-6c9f0f2a1d77",
"user_id": "3f8c1a22-9e41-4b0d-8d77-5a6b7c8d9e01",
"name": "Lead enrichment pipeline",
"status": "draft",
"trigger": { "type": "webhook" },
"steps": [
{ "id": "step1", "type": "email_lookup", "config": { "mode": "identity", "input": "{{trigger.email}}" } },
{ "id": "step2", "type": "email_lookup", "config": { "mode": "breaches", "input": "{{trigger.email}}" } }
],
"run_count": 0,
"created_at": "2026-06-01T10:00:00Z",
"updated_at": "2026-06-01T10:00:00Z"
}
This endpoint is not available on the developer API.
POST /api/workflows
is dashboard-only. Calling it on https://developer.encrata.com with an API
key returns 404 with the body
"That endpoint is not available on the developer API."Create workflows in the dashboard at app.encrata.com,
then drive them with the API-key endpoints:
List workflows,
Get workflow,
List workflow runs,
Get workflow run, and
Delete workflow.This page documents the request shape for reference only.Authentication
Requires a dashboard session (JWT) onhttps://api.encrata.com.
Request
string
required
Workflow display name.
string
Human-readable description of what the workflow does.
object
Trigger configuration.
type is one of manual, webhook, schedule,
file_upload, or monitor_event.array
The step definitions. Each step has
id, type, and config.array
Connections between steps. Omit for a linear workflow.
string
Records which template the workflow came from. It does not copy the
template’s trigger or steps - you still have to supply them.
Step types
| Type | Description |
|---|---|
email_lookup | Look up an email address. config.mode is validity, identity, breaches, or password-breaches |
condition | Branch logic (if/else) |
delay | Wait before continuing |
webhook | Send an HTTP request |
transform | Reshape data between steps |
export | Write results out (csv, webhook, or nango) |
Step configuration
Lookup steps read their subject fromconfig.input. Reference earlier data with
templating:
{{trigger.<field>}}- a field from the trigger payload{{steps.<n>.result.<path>}}- a value produced by stepn
condition step uses field (a steps.<n>.result.<path> reference, written
without braces), plus operator and value.
Example request
curl -X POST "https://api.encrata.com/api/workflows" \
-H "Authorization: Bearer YOUR_DASHBOARD_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Lead enrichment pipeline",
"trigger": { "type": "webhook" },
"steps": [
{ "id": "step1", "type": "email_lookup", "config": { "mode": "identity", "input": "{{trigger.email}}" } },
{ "id": "step2", "type": "condition", "config": { "field": "steps.1.result.person.company", "operator": "is_not_empty" } },
{ "id": "step3", "type": "email_lookup", "config": { "mode": "breaches", "input": "{{trigger.email}}" } },
{ "id": "step4", "type": "webhook", "config": { "url": "https://hooks.example.com/enriched", "method": "POST" } }
]
}'
import requests
resp = requests.post(
"https://api.encrata.com/api/workflows",
headers={"Authorization": "Bearer YOUR_DASHBOARD_TOKEN"},
json={
"name": "Lead enrichment pipeline",
"trigger": {"type": "webhook"},
"steps": [
{
"id": "step1",
"type": "email_lookup",
"config": {"mode": "identity", "input": "{{trigger.email}}"},
},
{
"id": "step2",
"type": "email_lookup",
"config": {"mode": "breaches", "input": "{{trigger.email}}"},
},
],
},
)
print(resp.json())
Response
Returns the created workflow. New workflows start asdraft - activate them
before they will run.
curl -X POST "https://api.encrata.com/api/workflows" \
-H "Authorization: Bearer YOUR_DASHBOARD_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Lead enrichment pipeline",
"trigger": { "type": "webhook" },
"steps": [
{ "id": "step1", "type": "email_lookup", "config": { "mode": "identity", "input": "{{trigger.email}}" } },
{ "id": "step2", "type": "condition", "config": { "field": "steps.1.result.person.company", "operator": "is_not_empty" } },
{ "id": "step3", "type": "email_lookup", "config": { "mode": "breaches", "input": "{{trigger.email}}" } },
{ "id": "step4", "type": "webhook", "config": { "url": "https://hooks.example.com/enriched", "method": "POST" } }
]
}'
import requests
resp = requests.post(
"https://api.encrata.com/api/workflows",
headers={"Authorization": "Bearer YOUR_DASHBOARD_TOKEN"},
json={
"name": "Lead enrichment pipeline",
"trigger": {"type": "webhook"},
"steps": [
{
"id": "step1",
"type": "email_lookup",
"config": {"mode": "identity", "input": "{{trigger.email}}"},
},
{
"id": "step2",
"type": "email_lookup",
"config": {"mode": "breaches", "input": "{{trigger.email}}"},
},
],
},
)
print(resp.json())
{
"id": "6f1c2e94-2b6a-4a1e-9b3a-6c9f0f2a1d77",
"user_id": "3f8c1a22-9e41-4b0d-8d77-5a6b7c8d9e01",
"name": "Lead enrichment pipeline",
"status": "draft",
"trigger": { "type": "webhook" },
"steps": [
{ "id": "step1", "type": "email_lookup", "config": { "mode": "identity", "input": "{{trigger.email}}" } },
{ "id": "step2", "type": "email_lookup", "config": { "mode": "breaches", "input": "{{trigger.email}}" } }
],
"run_count": 0,
"created_at": "2026-06-01T10:00:00Z",
"updated_at": "2026-06-01T10:00:00Z"
}
The response carries no
webhook_url. A webhook-triggered workflow’s ingest
token is issued separately, in the dashboard.Was this page helpful?