Generic per-phone event stream. Use this to tell Setter “this phone number did event X at time T” so future campaign sends can include or exclude that lead based on whether the event happened (optionally within a time window).Typical event types: mastery_purchase, webinar_attended, trial_started, cart_abandoned. You choose the names — they’re free strings scoped to your organization.
Shape-agnostic: this endpoint accepts either real-time per-event POSTs (one event per call) or bulk batches (up to 50,000 events per call). Both produce the same rows; the filter logic doesn’t care which shape was used.
Pick the auth mode for inbound webhooks once per organization, in Settings → Webhooks:
API key (default) — Bearer-token auth using any active org-level API key.
HMAC — generate a signing key, sign the raw request body with HMAC-SHA256, send as X-Setter-Signature: sha256=<hex>. Multiple signing keys can be active concurrently for rotation.
The unique key (organizationId, phoneE164, eventType, occurredAt) makes retries safe — re-POSTing the same batch returns duplicates = received and inserted = 0.Invalid rows (bad phone, missing/invalid occurredAt, oversize metadata) are rejected per-row, not per-batch — you get a structured rejects[] array back rather than a 400 for the whole call. The first 50 rejection reasons are returned for debugging.
phoneE164 is parsed via libphonenumber. Accepts the value with or without leading + and tolerates common formatting variants. Numbers that don’t parse are reported in rejects[] with reason invalid phoneE164.
First 50 rejected entries with a reason (debugging aid).
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Setter AI Documentation","colors":{"primary":"#6f2eff","light":"#a47aff","dark":"#6f2eff"},"logo":{"light":"https://mintcdn.com/setterai/AV6yna-vayQT6nGM/logo/light.png?fit=max\u0026auto=format\u0026n=AV6yna-vayQT6nGM\u0026q=85\u0026s=60adacc7ac39caaaaef0e42dfdb9bbe7","dark":"https://mintcdn.com/setterai/AV6yna-vayQT6nGM/logo/dark.png?fit=max\u0026auto=format\u0026n=AV6yna-vayQT6nGM\u0026q=85\u0026s=845617a99f8b76264da72fb1adaaf8e6"},"favicon":"https://mintcdn.com/setterai/AV6yna-vayQT6nGM/favicon.png?fit=max\u0026auto=format\u0026n=AV6yna-vayQT6nGM\u0026q=85\u0026s=ade5932ced75bd1f14dda7d8430e2a18","navbar":{"links":[{"href":"mailto:[email protected]","label":"Support"}]},"integrations":{"plausible":{"domain":"docs.trysetter.com"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"setterai","hasAudioNarration":false,"actualSubdomain":"setterai","customDomains":["docs.trysetter.com"],"gitSource":{"type":"github","owner":"trysetter","repo":"ai-chatbot-app","deployBranch":"main","contentDirectory":"apps/docs","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6adb8920e6de455b2093d969","clientVersion":"0.0.4087","searchFilterCounts":[{"language":"default","tag":"API Reference","count":8},{"language":"default","tag":"Guides","count":7},{"language":"default","tag":"Campaigns (WhatsApp)","count":3},{"language":"default","tag":"Set up SMS with Twilio","count":3},{"language":"default","tag":"Calendly Scheduling","count":2},{"language":"default","tag":"Campaigns","count":2},{"language":"default","tag":"Getting Started","count":1},{"language":"default","tag":"Meeting Reminders","count":1}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"campaigns/send-lead-event","slug":"/campaigns/send-lead-event","pageMetadata":{"title":"Send Lead Event","description":"Record a per-phone event so future campaign sends can include or exclude that lead","openapi":"POST /api/v1/webhooks/lead-events","href":"/campaigns/send-lead-event"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Record a per-phone event so future campaign sends can include or exclude that lead\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Note,Table}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`overview`,children:`Overview`}),`\n`,_jsx(_components.p,{children:`Generic per-phone event stream. Use this to tell Setter “this phone number did event X at time T” so future campaign sends can include or exclude that lead based on whether the event happened (optionally within a time window).`}),`\n`,_jsxs(_components.p,{children:[`Typical event types: `,_jsx(_components.code,{children:`mastery_purchase`}),`, `,_jsx(_components.code,{children:`webinar_attended`}),`, `,_jsx(_components.code,{children:`trial_started`}),`, `,_jsx(_components.code,{children:`cart_abandoned`}),`. You choose the names — they’re free strings scoped to your organization.`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Shape-agnostic`}),`: this endpoint accepts either real-time per-event POSTs (one event per call) or bulk batches (up to 50,000 events per call). Both produce the same rows; the filter logic doesn’t care which shape was used.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`authentication`,children:`Authentication`}),`\n`,_jsxs(_components.p,{children:[`Pick the auth mode for inbound webhooks once per organization, in `,_jsx(_components.strong,{children:`Settings → Webhooks`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`API key`}),` (default) — Bearer-token auth using any active org-level API key.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`HMAC`}),` — generate a signing key, sign the raw request body with HMAC-SHA256, send as `,_jsx(_components.code,{children:`X-Setter-Signature: sha256=\u003chex>`}),`. Multiple signing keys can be active concurrently for rotation.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`how-sends-consume-these-events`,children:`How sends consume these events`}),`\n`,_jsxs(_components.p,{children:[`When configuring a send under Campaigns → Sequence → Add a send, enable `,_jsx(_components.strong,{children:`Event filter`}),` and pick:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Mode`}),` — `,_jsx(_components.code,{children:`exclude`}),` (skip leads that have the event) or `,_jsx(_components.code,{children:`include`}),` (only send to leads that have the event).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Event type`}),` — must match the `,_jsx(_components.code,{children:`eventType`}),` you POST.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Within last (minutes, optional)`}),` — only consider events whose `,_jsx(_components.code,{children:`occurredAt`}),` is within this many minutes of the send firing.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Examples:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Skip anyone who’s ever purchased Mastery: `,_jsx(_components.code,{children:`{ mode: \"exclude\", eventType: \"mastery_purchase\" }`}),` (no window — sticky event)`]}),`\n`,_jsxs(_components.li,{children:[`Skip anyone currently in the live event: `,_jsx(_components.code,{children:`{ mode: \"exclude\", eventType: \"webinar_attended\", within: { minutes: 120 } }`}),` (windowed — “currently attending”)`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`The filter is applied at send-materialize time alongside any audience-filter event. Both filters can be active on the same send and are ANDed.`}),`\n`,_jsx(Heading,{level:`2`,id:`idempotency-and-validation`,children:`Idempotency and validation`}),`\n`,_jsxs(_components.p,{children:[`The unique key `,_jsx(_components.code,{children:`(organizationId, phoneE164, eventType, occurredAt)`}),` makes retries safe — re-POSTing the same batch returns `,_jsx(_components.code,{children:`duplicates = received`}),` and `,_jsx(_components.code,{children:`inserted = 0`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Invalid rows (bad phone, missing/invalid `,_jsx(_components.code,{children:`occurredAt`}),`, oversize metadata) are rejected per-row, not per-batch — you get a structured `,_jsx(_components.code,{children:`rejects[]`}),` array back rather than a 400 for the whole call. The first 50 rejection reasons are returned for debugging.`]}),`\n`,_jsx(Heading,{level:`2`,id:`phone-normalization`,children:`Phone normalization`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`phoneE164`}),` is parsed via libphonenumber. Accepts the value with or without leading `,_jsx(_components.code,{children:`+`}),` and tolerates common formatting variants. Numbers that don’t parse are reported in `,_jsx(_components.code,{children:`rejects[]`}),` with reason `,_jsx(_components.code,{children:`invalid phoneE164`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`caps`,children:`Caps`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Limit`}),_jsx(_components.th,{children:`Value`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Events per request`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`50,000`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Request body size`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`10 MB`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`eventType`}),` length`]}),_jsx(_components.td,{children:`128 chars`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`metadata`}),` per event (encoded)`]}),_jsx(_components.td,{\"data-numeric\":`true`,children:`8 KB`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`example-usage`,children:`Example Usage`}),`\n`,_jsx(Heading,{level:`3`,id:`real-time-single-event-bearer-api-key`,children:`Real-time single event (Bearer API key)`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`14`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`14`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://chat.trysetter.com/api/v1/webhooks/lead-events`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer your_api_key\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"organizationId\": 42,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"eventType\": \"mastery_purchase\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"events\": [`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"phoneE164\": \"+15551234567\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"occurredAt\": \"2026-05-12T18:34:00Z\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"metadata\": { \"orderId\": \"ord_9F2\", \"amountUsd\": 297 }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }'`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`bulk-batch-hmac-signature`,children:`Bulk batch (HMAC signature)`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`8`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`SECRET`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"your-signing-secret\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`BODY`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'{\"organizationId\":42,\"eventType\":\"webinar_attended\",\"events\":[{\"phoneE164\":\"+15551234567\",\"occurredAt\":\"2026-05-15T13:00:00Z\"},{\"phoneE164\":\"+447700900123\",\"occurredAt\":\"2026-05-15T13:05:11Z\"}]}'`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`SIG`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`$(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`printf`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '%s'`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$BODY`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` |`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` openssl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` dgst`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -sha256`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -hmac`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$SECRET`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -binary`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` |`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` xxd`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -p`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -c`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 256`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://chat.trysetter.com/api/v1/webhooks/lead-events`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"X-Setter-Signature: sha256=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$SIG`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --data-raw`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$BODY`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`]})})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Send Lead Event","description":"Record a per-phone event so future campaign sends can include or exclude that lead","openapi":"POST /api/v1/webhooks/lead-events","href":"/campaigns/send-lead-event"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Overview","slug":"overview","depth":2,"children":[]},{"title":"Authentication","slug":"authentication","depth":2,"children":[]},{"title":"How sends consume these events","slug":"how-sends-consume-these-events","depth":2,"children":[]},{"title":"Idempotency and validation","slug":"idempotency-and-validation","depth":2,"children":[]},{"title":"Phone normalization","slug":"phone-normalization","depth":2,"children":[]},{"title":"Caps","slug":"caps","depth":2,"children":[]},{"title":"Example Usage","slug":"example-usage","depth":2,"children":[{"title":"Real-time single event (Bearer API key)","slug":"real-time-single-event-bearer-api-key","depth":3,"children":[]},{"title":"Bulk batch (HMAC signature)","slug":"bulk-batch-hmac-signature","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Send Lead Event","description":"Record a per-phone event so future campaign sends can include or exclude that lead","operationId":"submitLeadEvents","tags":["Campaigns"],"security":["b3f4e99c-4407-44f6-a840-a5df502633ba","0842c912-77de-423f-a063-8d15d1e85a8f"],"requestBody":"b3b6b3b5-bc10-485e-bdd5-344adad6f0ab","responses":{"200":"bfafce74-ce67-4494-9d65-e2536b1377da","400":"5cd9eb0d-a80e-419e-a595-da6cc21860ad","401":"0e891eda-9288-4c9c-a69c-106d8377e51c","403":"0591b4e4-256b-45a0-9883-7647fe8ca8a3","413":"d9038a8d-69df-4736-945d-10a9311d1ab1"},"method":"post","type":"path","servers":["2d03048b-47b7-448b-8503-4011f80932ab"],"path":"/api/v1/webhooks/lead-events","baseUrlOptions":["https://chat.trysetter.com"],"title":"Send Lead Event","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["organizationId","eventType","events"],"properties":{"organizationId":{"type":"integer","description":"Your Setter organization ID. Auth credentials must match this org.","isRequired":true,"uniqueKey":"organizationId","typeLabel":"integer"},"eventType":{"type":"string","maxLength":128,"description":"Free string scoped to your org. We recommend snake_case (e.g. `mastery_purchase`).","isRequired":true,"uniqueKey":"eventType","typeLabel":"string"},"events":{"type":"array","minItems":1,"maxItems":50000,"items":{"type":"object","required":["phoneE164","occurredAt"],"properties":{"phoneE164":{"type":"string","description":"Recipient phone (E.164, with or without leading `+` — normalized via libphonenumber).","isRequired":true,"uniqueKey":"events.items.[INDEX].phoneE164","typeLabel":"string"},"occurredAt":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of when the event happened. Used by sends configured with a `within.minutes` window.","isRequired":true,"uniqueKey":"events.items.[INDEX].occurredAt","typeLabel":"string\u003cdate-time>"},"metadata":{"type":"object","description":"Optional metadata for your own records (≤ 8 KB encoded). Not interpreted by the filter logic.","additionalProperties":true,"uniqueKey":"events.items.[INDEX].metadata","typeLabel":"object"}},"uniqueKey":"events.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"events","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"single_event":{"title":"single_event","value":{"organizationId":42,"eventType":"mastery_purchase","events":[{"phoneE164":"+15551234567","occurredAt":"2026-05-12T18:34:00Z","metadata":{"orderId":"ord_9F2","amountUsd":297}}]}},"bulk_batch":{"title":"bulk_batch","value":{"organizationId":42,"eventType":"webinar_attended","events":[{"phoneE164":"+15551234567","occurredAt":"2026-05-15T13:00:00Z"},{"phoneE164":"+447700900123","occurredAt":"2026-05-15T13:05:11Z"},{"phoneE164":"+4915757956355","occurredAt":"2026-05-15T13:08:30Z"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"bfafce74-ce67-4494-9d65-e2536b1377da":{"description":"Batch processed. Inspect `inserted` / `duplicates` / `rejected` for outcome detail.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["accepted"],"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"received":{"type":"integer","description":"Number of entries in the input `events` array.","uniqueKey":"received","typeLabel":"integer"},"inserted":{"type":"integer","description":"Newly stored rows.","uniqueKey":"inserted","typeLabel":"integer"},"duplicates":{"type":"integer","description":"Entries that collided with an existing `(organizationId, phoneE164, eventType, occurredAt)` row.","uniqueKey":"duplicates","typeLabel":"integer"},"rejected":{"type":"integer","description":"Entries that failed validation (bad phone, invalid date, oversize metadata).","uniqueKey":"rejected","typeLabel":"integer"},"rejects":{"type":"array","description":"First 50 rejected entries with a reason (debugging aid).","items":{"type":"object","properties":{"index":{"type":"integer","uniqueKey":"rejects.items.[INDEX].index","typeLabel":"integer"},"reason":{"type":"string","uniqueKey":"rejects.items.[INDEX].reason","typeLabel":"string"}},"uniqueKey":"rejects.items.[INDEX]","typeLabel":"object"},"uniqueKey":"rejects","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"all_new":{"title":"all_new","value":{"status":"accepted","received":3,"inserted":3,"duplicates":0,"rejected":0,"rejects":[]}},"mixed":{"title":"mixed","value":{"status":"accepted","received":5,"inserted":3,"duplicates":1,"rejected":1,"rejects":[{"index":4,"reason":"invalid phoneE164"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"5cd9eb0d-a80e-419e-a595-da6cc21860ad":{"description":"Malformed body, missing required field, or `events` array empty / over the 50000 cap","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"missing_field":{"title":"missing_field","value":{"message":"eventType must be a non-empty string"}},"too_many_events":{"title":"too_many_events","value":{"message":"events cannot exceed 50000 entries"}}},"exampleType":"examples"}},"exampleType":"examples"},"0e891eda-9288-4c9c-a69c-106d8377e51c":{"description":"Auth failed — invalid API key or bad HMAC signature","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"message":"Invalid or missing API key"},"examples":{"Example":{"title":"Example","value":{"message":"Invalid or missing API key"}}},"exampleType":"examples"}},"exampleType":"examples"},"0591b4e4-256b-45a0-9883-7647fe8ca8a3":{"description":"Campaigns feature not enabled for this organization","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"message":"Forbidden"},"examples":{"Example":{"title":"Example","value":{"message":"Forbidden"}}},"exampleType":"examples"}},"exampleType":"examples"},"d9038a8d-69df-4736-945d-10a9311d1ab1":{"description":"Payload exceeds 10 MB","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"message":"Payload too large"},"examples":{"Example":{"title":"Example","value":{"message":"Payload too large"}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"b3f4e99c-4407-44f6-a840-a5df502633ba":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Bearer token authentication using your API key","scopes":[],"schemeName":"bearerAuth"}},"0842c912-77de-423f-a063-8d15d1e85a8f":{"signatureAuth":{"type":"apiKey","in":"header","name":"X-Setter-Signature","description":"HMAC-SHA256 signature of the raw request body, formatted as `sha256=\u003chex>`. Sign with any active org-level webhook signing key (manage them under Settings → Webhooks). Used by org webhook auth mode `hmac`.","scopes":[],"schemeName":"signatureAuth"}}},"servers":{"2d03048b-47b7-448b-8503-4011f80932ab":{"url":"https://chat.trysetter.com","description":"Production server"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Bearer token authentication using your API key","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer token authentication using your API key","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"},{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-Setter-Signature","description":"HMAC-SHA256 signature of the raw request body, formatted as `sha256=\u003chex>`. Sign with any active org-level webhook signing key (manage them under Settings → Webhooks). Used by org webhook auth mode `hmac`.","scopes":[],"schemeName":"signatureAuth"},"schema":{"title":"X-Setter-Signature","type":"string","description":"HMAC-SHA256 signature of the raw request body, formatted as `sha256=\u003chex>`. Sign with any active org-level webhook signing key (manage them under Settings → Webhooks). Used by org webhook auth mode `hmac`.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"signatureAuth","name":"X-Setter-Signature"}],"title":"signatureAuth"}]},"originalFileLocation":"openapi.json"},"subdomain":"setterai","siteName":"Setter AI Documentation","title":"Send Lead Event - Setter AI Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-05-13T03:48:49.712Z","originalFileLocation":"campaigns/send-lead-event.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Record a per-phone event so future campaign sends can include or exclude that lead\">\u003cmeta data-mint-head name=\"application-name\" content=\"Setter AI Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/setterai/0sFTN1yBzEXgSiM4/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/setterai/0sFTN1yBzEXgSiM4/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/setterai/0sFTN1yBzEXgSiM4/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/setterai/0sFTN1yBzEXgSiM4/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/setterai/0sFTN1yBzEXgSiM4/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/setterai/0sFTN1yBzEXgSiM4/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/setterai/0sFTN1yBzEXgSiM4/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/setterai/0sFTN1yBzEXgSiM4/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/setterai/0sFTN1yBzEXgSiM4/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Send Lead Event - Setter AI Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Record a per-phone event so future campaign sends can include or exclude that lead\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Setter AI Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.trysetter.com/campaigns/send-lead-event\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://setterai.mintlify.site/_mintlify/api/og/v2?division=Campaigns\u0026amp;title=Send+Lead+Event\u0026amp;description=Record+a+per-phone+event+so+future+campaign+sends+can+include+or+exclude+that+lead\u0026amp;theme=4c15eb72fe2291ade3053db9\u0026amp;signature=6b525cd45173586761f8b9c6c575d5ec12d785e5dec2fda7a09d7ba38cc28627\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Send Lead Event - Setter AI Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Record a per-phone event so future campaign sends can include or exclude that lead\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://setterai.mintlify.site/_mintlify/api/og/v2?division=Campaigns\u0026amp;title=Send+Lead+Event\u0026amp;description=Record+a+per-phone+event+so+future+campaign+sends+can+include+or+exclude+that+lead\u0026amp;theme=4c15eb72fe2291ade3053db9\u0026amp;signature=6b525cd45173586761f8b9c6c575d5ec12d785e5dec2fda7a09d7ba38cc28627\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/setterai/0sFTN1yBzEXgSiM4/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Setter AI Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#6f2eff\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.trysetter.com/campaigns/send-lead-event\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/campaigns/send-lead-event.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.trysetter.com/#organization\",\"name\":\"Setter AI Documentation\",\"url\":\"https://docs.trysetter.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/setterai/AV6yna-vayQT6nGM/logo/light.png?fit=max\u0026auto=format\u0026n=AV6yna-vayQT6nGM\u0026q=85\u0026s=60adacc7ac39caaaaef0e42dfdb9bbe7\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.trysetter.com#website\",\"name\":\"Setter AI Documentation\",\"url\":\"https://docs.trysetter.com\",\"publisher\":{\"@id\":\"https://docs.trysetter.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.trysetter.com/campaigns/send-lead-event#webpage\",\"url\":\"https://docs.trysetter.com/campaigns/send-lead-event\",\"name\":\"Send Lead Event\",\"description\":\"Record a per-phone event so future campaign sends can include or exclude that lead\",\"dateModified\":\"2026-05-13T03:48:49.712Z\",\"isPartOf\":{\"@id\":\"https://docs.trysetter.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.trysetter.com/campaigns/send-lead-event#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.trysetter.com/campaigns/send-lead-event#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://docs.trysetter.com/setter-ai/api-reference\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Campaigns\",\"item\":\"https://docs.trysetter.com/campaigns/filter-audience\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Send Lead Event\",\"item\":\"https://docs.trysetter.com/campaigns/send-lead-event\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.trysetter.com/campaigns/send-lead-event#apireference\",\"headline\":\"Send Lead Event\",\"name\":\"Send Lead Event\",\"description\":\"Record a per-phone event so future campaign sends can include or exclude that lead\",\"url\":\"https://docs.trysetter.com/campaigns/send-lead-event\",\"mainEntityOfPage\":{\"@id\":\"https://docs.trysetter.com/campaigns/send-lead-event#webpage\"},\"dateModified\":\"2026-05-13T03:48:49.712Z\",\"publisher\":{\"@id\":\"https://docs.trysetter.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.trysetter.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Setter AI Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Setter AI Documentation","nav":{"global":null,"groups":[{"group":"Getting Started","pages":[{"title":"Introduction","href":"/index"}]},{"group":"Guides","icon":"book-open","pages":[{"group":"Set up SMS with Twilio","pages":[{"title":"SMS Integration Overview","href":"/sms-integration/introduction"},{"title":"Twilio SMS Setup","href":"/sms-integration/twilio-setup"},{"title":"A2P 10DLC Registration Guide","href":"/sms-integration/a2p-registration"}]},{"group":"Meeting Reminders","pages":[{"title":"WhatsApp Meeting Reminders Setup","href":"/whatsapp-reminders/setup"}]},{"group":"Campaigns (WhatsApp)","pages":[{"title":"Campaigns","href":"/campaigns/overview"},{"title":"Audience Filtering","href":"/campaigns/audience-filtering"},{"title":"Lead Events","href":"/campaigns/lead-events"}]}]},{"group":"API Reference","icon":"code","pages":[{"title":"Send Message","openapi":"POST /api/v1/bot-integrations/{botIntegrationId}/messages/send","href":"/setter-ai/api-reference"},{"title":"Get Conversation History","openapi":"GET /api/v1/bot-integrations/{botIntegrationId}/conversations","href":"/setter-ai/conversation-history"},{"title":"Update Contact","openapi":"PUT /api/v1/contacts","href":"/setter-ai/update-contact"},{"title":"Create Booking","openapi":"POST /api/v1/bookings","href":"/setter-ai/bookings"},{"title":"Cancel Booking","openapi":"POST /api/v1/bookings/{id}/cancel","href":"/setter-ai/cancel-booking"},{"title":"Webhooks","href":"/setter-ai/webhooks"},{"group":"Campaigns","pages":[{"title":"Filter Send Audience","description":"Narrow a scheduled campaign send to a real-time include or exclude list of leads","openapi":"POST /api/v1/webhooks/campaigns/audience-filter","href":"/campaigns/filter-audience"},{"title":"Send Lead Event","openapi":"POST /api/v1/webhooks/lead-events","href":"/campaigns/send-lead-event"}]}]},{"group":"Calendly Scheduling","icon":"calendar","pages":[{"title":"Introduction","description":"Schedule events directly to Calendly automatically.","href":"/calendly-scheduling/introduction"},{"title":"Create Event","openapi":"POST /api/scheduled_events","href":"/calendly-scheduling/api-reference/create-event/post"}]}]},"basePath":"","title":"Send Lead Event - Setter AI Documentation","buildId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","deploymentId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CBsVopKK.js","utils-DZAk68jJ.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-D32AYZrP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-D_A5_cny.js","snippetPresets-xNRfS9th.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BIB25-tq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CydJ4w4j.js","shallow-CYPBeQSG.js","getApiPlaygroundDisplay-A5xJVBOu.js","CodeSnippet-BVRTgi3m.js","CodeSnippets-DjD6BSlt.js","Page-Dr40SSJq.js","getPastedJson-D4V4JyrR.js","icon-uhcnG22T.js","MethodPill-CM-ZQdGH.js","DuplicateIcon-B_WnOiNf.js","createIcon-CJsb8utt.js","DynamicMarkdown-D-2HDKEp.js","SectionHeading-KP5xmMgQ.js","axios-vUo_bRtp.js","Markdown-D_k0dg6k.js","clsx-DK3K4Z1S.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DE3EVdvd.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-fN9H9n9g.js"]}