Forward submission JSON to your own middleware
This guide is for a technical admin or integrator who already enabled HTTPS webhooks under Settings → Operations. You will map WCKD Forms’ JSON POSTs into HubSpot, Salesforce, Slack Incoming Webhooks, queues, or other HTTPS APIs using Zapier, Make, n8n, or custom code. The product stores submissions in MySQL and emits webhooks; it does not ship OAuth flows or native CRM apps.
You align expectations with the fixed intake pipeline: Notifications — intake order and Webhooks — when POSTs fire.
- Confirm the submission row exists in your database before any webhook fires for
submission_created. - Assume your HTTPS endpoint receives
application/jsonafter staff mail attempts for new rows. - Assume
status_changedPOSTs happen only after a dashboard user saves a new status.
Receivers branch on event type and map fields into CRM columns.
- Expect top-level keys
event,submission_id,form_name,status,submitted_at,page_url,ip_address, andfields(object of string values). - Expect
previous_statusonly wheneventequalsstatus_changed. - Branch on
form_namewhen two registry keys reuse similar field names with different meanings.
Zapier, Make, or n8n issues a public HTTPS URL your WCKD Forms server can reach (private IPs and localhost are rejected by validation).
- Create a Zapier Webhooks by Zapier → Catch Hook, a Make Custom webhook, or an n8n Webhook node.
- Copy the HTTPS URL the tool shows.
- Paste it into Settings → Operations → Webhooks with the toggles documented in Webhooks.
OAuth credentials for Salesforce or HubSpot stay inside the automation tool or your worker, not inside WCKD Forms.
- Add an action step that creates or updates a CRM record using properties from the webhook body (for example map
fields.emailto the CRM email column). - For Slack, either post the raw JSON to an Incoming Webhook URL or format a message in the automation layer.
- Handle required CRM fields (for example Salesforce Lead
Company) with defaults or validation inside your scenario.
You avoid pushing unqualified rows into downstream systems.
- Use On new submission when every stored row should sync automatically.
- Use On status change with status filters when only reviewed stages (for example a “Qualified” label) should trigger CRM writes.
- Save Operations and test both a fresh submission and a status edit.
You confirm replays or partial failures do not corrupt downstream data.
- Use
submission_idas a dedupe key in your worker when the automation tool may retry POSTs. - Force a controlled failure (wrong bearer token) and confirm your logs show the rejection while submissions still exist in WCKD Forms.
- Expecting OAuth inside WCKD Forms: connect CRMs from middleware; the dashboard only stores HTTPS URLs and bearer strings.
- Mapping fields that do not exist on every form: guard each mapping with a conditional on
form_nameor presence checks insidefields. - Posting to http://: validation requires
https://for webhook destinations.
- Webhooks: toggles, bearer secrets, delivery order.
- Notifications: staff email (separate from webhooks).
- Operations: where webhook rows live.
- Inbox & leads: status edits that drive
status_changed.