Contact Form Payload
This is a reference example, not something you Send from here — Coi is the caller, your server is the receiver.
Configure the target URL in the admin at System > Site Settings > “Codes and Scripts” tab > “Webhook for Forms”, with the POST(JSON) mode selected. A form can also carry its OWN webhook URL (form editor > form settings > “Webhook לטופס זה”) — that one is always POST-JSON, receives this same payload, and overrides the site-level URL for that form only; the site-level setting stays the fallback for every other form.
Each form field can be given a short English alias in the form editor (name, email, phone, message, …). Aliased fields arrive as top-level JSON keys under their alias; fields without an alias arrive as {Name, Value} entries in the fields array, keyed by their visible (typically Hebrew) label. formID, pageTitle, fields and utm are reserved and can never be aliases. Multi-select fields (checkbox groups) send their checked options joined with ” | ”.
MIGRATION — the previous format was a flat JSON object keyed directly by the Hebrew field labels ({“שם מלא”: ”…”, “formID”: ”…”, “pageTitle”: ”…”} with utm_* mixed in at top level). An integration built against that format must be remapped once: read unaliased fields from the fields array (or better, set aliases on the fields in the form editor and read the stable English keys).
Fires once per successful form submission. No retry on failure.
Payload
The form element's ID on the page. Stable per form — use it to tell forms apart when one webhook receives several.
Every submitted field that has NO English alias, in form order, as name/value pairs. Field names here are the visible labels the merchant's form uses (typically Hebrew).
Marketing parameters that were on the page URL (utm_source, utm_campaign, ...), grouped here. Omitted entirely when there were none.
