{
"trigger_id": "<PRODUCTION_TRIGGER_ID>",
"metadata": { "batch_id": "net-deposit-20260710-001" },
"data": [
{ "occurred_at": "2026-07-10T12:21:24.001Z", "event_type": "net_deposit.snapshot", "client_id": "<broker-client-id>", "deposit_id": "18774", "net_deposit_delta": 10000 }
]
}_id and its stored options. The _id is the value the sender posts as trigger_id.server-2:account-88:trade-100, and configure that single path.GET /catalog returns platformActionFields.get and platformActionFields.post, each entry carrying the key the step stores, the label the platform stores beside it, and whether the field is builtin or custom.data. Map the array, not the envelope, unless a step needs the envelope itself. A workflow that fans out per row belongs in a row-level step; a workflow that needs one aggregate belongs in a bulk step.| Surface | Question | Where |
|---|---|---|
| Event ingest status | Did the platform receive this batch, and did the workflow run it? | GET /v1/data-workflows/event-ingests/status?trigger_id=<triggerId>&batch_id=<batchId> |
| Bulk update callback | Did the resulting user update finish, and how many rows succeeded? | A URL the broker controls, configured on the bulk step |
| Failure webhook | Did a run end in error? | The workflow's outgoingWebhookUrl |
dataWorkflows permission. It is a separate permission from workflowBuilder, and it is the one place dataWorkflows still applies.pending or queued: accepted, waiting. Minutes of wait are normal for a scheduled dispatch.processed: the workflow ran. It does not mean every step succeeded, and it does not mean balances changed.skipped: a duplicate batch id, or every row was a duplicate or had no record id.failed: rejected before running, for example a batch id missing from the configured path.orphaned: no deployed workflow matched the trigger.GET /{workflowId}/runs when you need to know whether steps succeeded. processed and a run error can both be true.skipped, which hides the original result.GET /{workflowId}/runs for the run and GET /runs/{runId} for the step results.2xx from the sender's post proves only that the request was accepted. An ingest row proves it was routed. A run proves it executed. Only the member's value proves the reward.| What you see | What it means | What to do |
|---|---|---|
Ingest failed with a batch id path message | The batch id was not at the configured root path | Fix the sender, resend under a new batch id. |
Ingest skipped | Duplicate batch, or all rows duplicated | Nothing to do unless the data is genuinely new. |
Ingest processed, run error | The workflow ran and a step failed | Read the run detail, fix the step. |
Status read 404 right after a 2xx ingest | The batch id could not be read, so the row cannot be found by that id | Check the envelope, then ask for the batch on the Event Ingests board. |
Bulk job Failed, every row success | The job failed as a whole and nothing was applied | Check the CSV header names the community's identifier field, then send a new batch. |
| No ingest row at all | The request never reached the platform | Confirm the exact URL the sender posted to resolves, and ask for the sender's exact request. |