Subscribe to events, verify the HMAC signature, and handle retries.
Webhooks notify you in real time when something happens in your workspace (a new contact, a delivered
message, a finished campaign…) via a POST to your URL.
The response includes a secret (whsec_…) shown only once — store it to verify the
signature. Rotate it with POST /v1/webhooks/{id}/rotate_secret.events accepts exact names (contact.created), per-resource wildcards (contact.*), or * (all).
See the full catalog at GET /v1/webhooks/events.
The signature is HMAC-SHA256 of `${timestamp}.${raw_body}` with your secret. Recompute and
compare in constant time. Reject if the timestamp is older than ~5 min (anti-replay).
At-least-once: the same event may arrive more than once. Deduplicate by id (or
X-ApyConnect-Delivery). Don’t assume order; use created_at.
Respond 2xx quickly (< 8 s). If you fail, we retry with exponential backoff.
After many consecutive failures, the endpoint becomes auto_disabled (circuit breaker). Fix
your server and reactivate it with PATCH /v1/webhooks/{id} → {"status":"active"} (resets the counter).
record.updated includes changed (the property keys that changed, plus stage or owner_id);
record.stage_changed includes from and to (stage keys). Subscribe to record.* to get them all.
approval.requested is sent when a stage asks for approval; approval.decided adds status
(approved, rejected or expired) once the decision is final. stage.sla_breached carries the
deal or record (object, id) and its stage. project.milestone_completed carries the milestone
id and its project_id.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"ApyConnect","description":"Guía de uso de ApyConnect: la plataforma de atención al cliente omnicanal.","colors":{"primary":"#F0621E","light":"#FF7A3D","dark":"#C74E14"},"logo":{"light":"https://mintcdn.com/apyconnect/WZevHw0nxgAPhVKD/logo/logo.png?fit=max\u0026auto=format\u0026n=WZevHw0nxgAPhVKD\u0026q=85\u0026s=d5978a143d12bdcf956e86f716fa216c","dark":"https://mintcdn.com/apyconnect/WZevHw0nxgAPhVKD/logo/logo.png?fit=max\u0026auto=format\u0026n=WZevHw0nxgAPhVKD\u0026q=85\u0026s=d5978a143d12bdcf956e86f716fa216c"},"favicon":"https://mintcdn.com/apyconnect/WZevHw0nxgAPhVKD/favicon.png?fit=max\u0026auto=format\u0026n=WZevHw0nxgAPhVKD\u0026q=85\u0026s=b2bb24effca912d8f93aca4e66faecb5","navbar":{"primary":{"type":"button","label":"Ir a la app","href":"https://app.apyconnect.io"}},"footer":{"socials":{"website":"https://apyconnect.io"}},"styling":{"latex":false},"navigation":{"languages":[{"language":"es","default":true,"href":"es"},{"language":"en","href":"en"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"apyconnect","hasAudioNarration":false,"actualSubdomain":"apyconnect","customDomains":["docs.apyconnect.io"],"gitSource":{"type":"github","owner":"apifycloud","repo":"apyconnect-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6aeb5b43b21018c2553e87b3","clientVersion":"0.0.4088","searchFilterCounts":[{"language":"default","tag":"API","count":117},{"language":"default","tag":"Referencia","count":117},{"language":"en","tag":"User guide","count":33},{"language":"es","tag":"Guía de uso","count":33},{"language":"en","tag":"Administration","count":22},{"language":"es","tag":"Administración","count":22},{"language":"default","tag":"Custom objects","count":12},{"language":"default","tag":"Campaigns","count":11},{"language":"default","tag":"Contacts","count":11},{"language":"default","tag":"Conversations","count":11},{"language":"en","tag":"Contacts (CRM)","count":10},{"language":"es","tag":"Contactos (CRM)","count":10},{"language":"en","tag":"Reference","count":8},{"language":"es","tag":"Referencia","count":8},{"language":"default","tag":"Settings","count":8},{"language":"en","tag":"API","count":7},{"language":"en","tag":"Introduction","count":7},{"language":"en","tag":"Channels","count":7},{"language":"en","tag":"Handle conversations","count":7},{"language":"es","tag":"API","count":7},{"language":"es","tag":"Introducción","count":7},{"language":"es","tag":"Canales","count":7},{"language":"es","tag":"Atender conversaciones","count":7},{"language":"default","tag":"Analytics","count":7},{"language":"default","tag":"Webhooks","count":7},{"language":"default","tag":"Pipelines","count":6},{"language":"en","tag":"Service \u0026 queues","count":5},{"language":"es","tag":"Atención y colas","count":5},{"language":"en","tag":"Campaigns","count":4},{"language":"es","tag":"Campañas","count":4}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"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":"en/api/webhooks","slug":"/en/api/webhooks","pageMetadata":{"title":"Webhooks","description":"Subscribe to events, verify the HMAC signature, and handle retries.","href":"/en/api/webhooks"},"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: \"Subscribe to events, verify the HMAC signature, and handle retries.\"\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`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Webhooks notify you in real time when something happens in your workspace (a new contact, a delivered\nmessage, a finished campaign…) via a `,_jsx(_components.code,{children:`POST`}),` to your URL.`]}),`\n`,_jsx(Heading,{level:`2`,id:`create-an-endpoint`,children:`Create an endpoint`}),`\n`,_jsxs(_components.p,{children:[`You need the `,_jsx(_components.code,{children:`webhooks:manage`}),` scope. The URL must be `,_jsx(_components.strong,{children:`https`}),`.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,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:`4`,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://api.apyconnect.io/v1/webhooks`}),_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 `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$TOKEN`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},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:` '{ \"url\": \"https://your-server.com/webhooks/apyconnect\",`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"events\": [\"contact.created\", \"message.*\"] }'`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`The response includes a `,_jsx(_components.strong,{children:_jsx(_components.code,{children:`secret`})}),` (`,_jsx(_components.code,{children:`whsec_…`}),`) shown `,_jsx(_components.strong,{children:`only once`}),` — store it to verify the\nsignature. Rotate it with `,_jsx(_components.code,{children:`POST /v1/webhooks/{id}/rotate_secret`}),`.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`events`}),` accepts exact names (`,_jsx(_components.code,{children:`contact.created`}),`), per-resource wildcards (`,_jsx(_components.code,{children:`contact.*`}),`), or `,_jsx(_components.code,{children:`*`}),` (all).\nSee the full catalog at `,_jsx(_components.code,{children:`GET /v1/webhooks/events`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`event-shape`,children:`Event shape`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`json`,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:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"evt_…\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"contact.created\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"created_at\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-07-22T12:00:00.000Z\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"object\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"contact\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"per_…\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Ada Lovelace\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`POST`}),` headers:`]}),`\n`,_jsx(CodeBlock,{numberOfLines:`5`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`X-ApyConnect-Event: contact.created`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`X-ApyConnect-Delivery: whd_…`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`X-ApyConnect-Timestamp: 1721649600`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`X-ApyConnect-Signature: sha256=\u003chmac_hex>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Heading,{level:`2`,id:`verify-the-signature`,children:`Verify the signature`}),`\n`,_jsxs(_components.p,{children:[`The signature is `,_jsx(_components.code,{children:`HMAC-SHA256`}),` of `,_jsx(_components.code,{children:\"`${timestamp}.${raw_body}`\"}),` with your `,_jsx(_components.code,{children:`secret`}),`. Recompute and\ncompare in `,_jsx(_components.strong,{children:`constant time`}),`. Reject if the timestamp is older than ~5 min (anti-replay).`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`11`,language:`javascript`,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:`javascript`,children:_jsxs(_components.code,{language:`javascript`,numberOfLines:`11`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` crypto`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"node:crypto\"`}),_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:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`function`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` verify`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`req`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`secret`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` ts`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` req`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`headers`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"x-apyconnect-timestamp\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`];`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` sig`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` req`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`headers`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"x-apyconnect-signature\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]; `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// \"sha256=…\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` expected`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"sha256=\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` +`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` crypto`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`createHmac`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"sha256\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`secret`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` .`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`update`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"`\"}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:\"${\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`ts`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`.`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:\"${\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`req`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`rawBody`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"`\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`).`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`digest`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"hex\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` ok`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` crypto`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`timingSafeEqual`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Buffer`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`sig`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`), `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Buffer`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`expected`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`));`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` fresh`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` Math`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`abs`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Date`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`now`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`() `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`/`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1000`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` -`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` Number`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`ts`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 300`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` ok`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` \u0026\u0026`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` fresh`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(Warning,{children:[`Verify over the `,_jsx(_components.strong,{children:`raw body`}),` (exact bytes), not the re-serialized JSON.`]}),`\n`,_jsx(Heading,{level:`2`,id:`delivery-retries-and-auto-disable`,children:`Delivery, retries, and auto-disable`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`At-least-once`}),`: the same event may arrive more than once. Deduplicate by `,_jsx(_components.code,{children:`id`}),` (or\n`,_jsx(_components.code,{children:`X-ApyConnect-Delivery`}),`). Don’t assume order; use `,_jsx(_components.code,{children:`created_at`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Respond `,_jsx(_components.strong,{children:`2xx`}),` quickly (\u003c 8 s). If you fail, we retry with `,_jsx(_components.strong,{children:`exponential backoff`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`After many consecutive failures, the endpoint becomes `,_jsx(_components.strong,{children:_jsx(_components.code,{children:`auto_disabled`})}),` (circuit breaker). Fix\nyour server and reactivate it with `,_jsx(_components.code,{children:`PATCH /v1/webhooks/{id}`}),` → `,_jsx(_components.code,{children:`{\"status\":\"active\"}`}),` (resets the counter).`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`event-catalog-excerpt`,children:`Event catalog (excerpt)`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`message.received`}),` · `,_jsx(_components.code,{children:`message.sent`}),` · `,_jsx(_components.code,{children:`message.delivered`}),` · `,_jsx(_components.code,{children:`message.read`}),` · `,_jsx(_components.code,{children:`message.failed`}),` ·\n`,_jsx(_components.code,{children:`conversation.created`}),` · `,_jsx(_components.code,{children:`conversation.assigned`}),` · `,_jsx(_components.code,{children:`conversation.closed`}),` · `,_jsx(_components.code,{children:`contact.created`}),` ·\n`,_jsx(_components.code,{children:`contact.updated`}),` · `,_jsx(_components.code,{children:`contact.merged`}),` · `,_jsx(_components.code,{children:`deal.stage_changed`}),` · `,_jsx(_components.code,{children:`deal.won`}),` · `,_jsx(_components.code,{children:`ticket.created`}),` ·\n`,_jsx(_components.code,{children:`record.created`}),` · `,_jsx(_components.code,{children:`record.updated`}),` · `,_jsx(_components.code,{children:`record.stage_changed`}),` · `,_jsx(_components.code,{children:`record.deleted`}),` ·\n`,_jsx(_components.code,{children:`approval.requested`}),` · `,_jsx(_components.code,{children:`approval.decided`}),` · `,_jsx(_components.code,{children:`stage.sla_breached`}),` · `,_jsx(_components.code,{children:`project.milestone_completed`}),` ·\n`,_jsx(_components.code,{children:`campaign.completed`}),` · `,_jsx(_components.code,{children:`whatsapp.template.approved`}),` · `,_jsx(_components.code,{children:`job.completed`}),` … (full list at `,_jsx(_components.code,{children:`/v1/webhooks/events`}),`).`]}),`\n`,_jsx(Heading,{level:`3`,id:`custom-object-records`,children:`Custom object records`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`record.*`}),` events carry the record id and its object, so you can fetch the full record with\n`,_jsx(_components.code,{children:`GET /v1/objects/{object_key}/records/{id}`}),`:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`json`,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:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{ `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"object\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"record\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"cor_…\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"object_key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"policies\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"object_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"cob_…\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"changed\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"premium\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"stage\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`] }`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`record.updated`}),` includes `,_jsx(_components.code,{children:`changed`}),` (the property keys that changed, plus `,_jsx(_components.code,{children:`stage`}),` or `,_jsx(_components.code,{children:`owner_id`}),`);\n`,_jsx(_components.code,{children:`record.stage_changed`}),` includes `,_jsx(_components.code,{children:`from`}),` and `,_jsx(_components.code,{children:`to`}),` (stage keys). Subscribe to `,_jsx(_components.code,{children:`record.*`}),` to get them all.`]}),`\n`,_jsx(Heading,{level:`3`,id:`pipelines`,children:`Pipelines`}),`\n`,_jsx(_components.p,{children:`Stage rules (approvals, SLA, milestones) emit their own events:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`json`,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:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{ `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"object\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"approval\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"apr_…\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"subject_type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"record\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"subject_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"cor_…\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"to_stage\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"produccion\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`approval.requested`}),` is sent when a stage asks for approval; `,_jsx(_components.code,{children:`approval.decided`}),` adds `,_jsx(_components.code,{children:`status`}),`\n(`,_jsx(_components.code,{children:`approved`}),`, `,_jsx(_components.code,{children:`rejected`}),` or `,_jsx(_components.code,{children:`expired`}),`) once the decision is final. `,_jsx(_components.code,{children:`stage.sla_breached`}),` carries the\ndeal or record (`,_jsx(_components.code,{children:`object`}),`, `,_jsx(_components.code,{children:`id`}),`) and its `,_jsx(_components.code,{children:`stage`}),`. `,_jsx(_components.code,{children:`project.milestone_completed`}),` carries the milestone\n`,_jsx(_components.code,{children:`id`}),` and its `,_jsx(_components.code,{children:`project_id`}),`.`]})]})}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":"Webhooks","description":"Subscribe to events, verify the HMAC signature, and handle retries.","href":"/en/api/webhooks"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Create an endpoint","slug":"create-an-endpoint","depth":2,"children":[]},{"title":"Event shape","slug":"event-shape","depth":2,"children":[]},{"title":"Verify the signature","slug":"verify-the-signature","depth":2,"children":[]},{"title":"Delivery, retries, and auto-disable","slug":"delivery-retries-and-auto-disable","depth":2,"children":[]},{"title":"Event catalog (excerpt)","slug":"event-catalog-excerpt","depth":2,"children":[{"title":"Custom object records","slug":"custom-object-records","depth":3,"children":[]},{"title":"Pipelines","slug":"pipelines","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":[],"subdomain":"apyconnect","siteName":"ApyConnect","title":"Webhooks - ApyConnect","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"es":{"href":"/es/api/webhooks","matchLevel":1},"en":{"href":"/en/api/webhooks","matchLevel":0}}},"lastModified":"2026-11-04T16:21:55.041Z","originalFileLocation":"en/api/webhooks.mdx","locale":"en"},"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=\"Subscribe to events, verify the HMAC signature, and handle retries.\">\u003cmeta data-mint-head name=\"application-name\" content=\"ApyConnect\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/apyconnect/htk-HYmaxWV-tgt6/_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/apyconnect/htk-HYmaxWV-tgt6/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/apyconnect/htk-HYmaxWV-tgt6/_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/apyconnect/htk-HYmaxWV-tgt6/_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/apyconnect/htk-HYmaxWV-tgt6/_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/apyconnect/htk-HYmaxWV-tgt6/_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/apyconnect/htk-HYmaxWV-tgt6/_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/apyconnect/htk-HYmaxWV-tgt6/_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/apyconnect/htk-HYmaxWV-tgt6/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Webhooks - ApyConnect\">\u003cmeta data-mint-head property=\"og:description\" content=\"Subscribe to events, verify the HMAC signature, and handle retries.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"ApyConnect\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.apyconnect.io/en/api/webhooks\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://apyconnect.mintlify.site/_mintlify/api/og/v2?division=Introduction\u0026amp;title=Webhooks\u0026amp;description=Subscribe+to+events%2C+verify+the+HMAC+signature%2C+and+handle+retries.\u0026amp;theme=a36cc832b80dfc32c7f62ec2\u0026amp;signature=dbb588ae790b28f8d72a38fc77ae8b2aedbdc8c71a2796e38b13012ae3ccf566\">\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=\"Webhooks - ApyConnect\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Subscribe to events, verify the HMAC signature, and handle retries.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://apyconnect.mintlify.site/_mintlify/api/og/v2?division=Introduction\u0026amp;title=Webhooks\u0026amp;description=Subscribe+to+events%2C+verify+the+HMAC+signature%2C+and+handle+retries.\u0026amp;theme=a36cc832b80dfc32c7f62ec2\u0026amp;signature=dbb588ae790b28f8d72a38fc77ae8b2aedbdc8c71a2796e38b13012ae3ccf566\">\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/apyconnect/htk-HYmaxWV-tgt6/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"ApyConnect\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#F0621E\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.apyconnect.io/en/api/webhooks\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/en/api/webhooks.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.apyconnect.io/en/api/webhooks\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"es\" href=\"https://docs.apyconnect.io/es/api/webhooks\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.apyconnect.io/es/api/webhooks\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.apyconnect.io/#organization\",\"name\":\"ApyConnect\",\"url\":\"https://docs.apyconnect.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/apyconnect/WZevHw0nxgAPhVKD/logo/logo.png?fit=max\u0026auto=format\u0026n=WZevHw0nxgAPhVKD\u0026q=85\u0026s=d5978a143d12bdcf956e86f716fa216c\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.apyconnect.io#website\",\"name\":\"ApyConnect\",\"url\":\"https://docs.apyconnect.io\",\"publisher\":{\"@id\":\"https://docs.apyconnect.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.apyconnect.io/en/api/webhooks#webpage\",\"url\":\"https://docs.apyconnect.io/en/api/webhooks\",\"name\":\"Webhooks\",\"description\":\"Subscribe to events, verify the HMAC signature, and handle retries.\",\"dateModified\":\"2026-11-04T16:21:55.041Z\",\"isPartOf\":{\"@id\":\"https://docs.apyconnect.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.apyconnect.io/en/api/webhooks#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.apyconnect.io/en/api/webhooks#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Introduction\",\"item\":\"https://docs.apyconnect.io/en/api/introduccion\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Webhooks\",\"item\":\"https://docs.apyconnect.io/en/api/webhooks\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.apyconnect.io/en/api/webhooks#article\",\"headline\":\"Webhooks\",\"name\":\"Webhooks\",\"description\":\"Subscribe to events, verify the HMAC signature, and handle retries.\",\"url\":\"https://docs.apyconnect.io/en/api/webhooks\",\"mainEntityOfPage\":{\"@id\":\"https://docs.apyconnect.io/en/api/webhooks#webpage\"},\"dateModified\":\"2026-11-04T16:21:55.041Z\",\"publisher\":{\"@id\":\"https://docs.apyconnect.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.apyconnect.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"ApyConnect\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"ApyConnect","nav":{"global":null,"languages":[{"language":"es","default":true,"pages":[{"title":"es","href":"/es/api/webhooks"}]},{"language":"en","tabs":[{"tab":"User guide","icon":"book-open","pages":[{"title":"User guide","href":"/en"}]},{"tab":"Administration","icon":"sliders","pages":[{"title":"Administration","href":"/en/guias/puesta-a-punto"}]},{"tab":"Reference","icon":"bookmark","pages":[{"title":"Reference","href":"/en/guias/glosario"}]},{"tab":"API","icon":"code","groups":[{"group":"Introduction","pages":[{"title":"Get started with the API","href":"/en/api/introduccion"},{"title":"Authentication","href":"/en/api/autenticacion"},{"title":"Pagination \u0026 filters","href":"/en/api/paginacion"},{"title":"Errors \u0026 rate limits","description":"Error shape, HTTP codes, and rate limiting.","href":"/en/api/errores"},{"title":"Webhooks","href":"/en/api/webhooks"},{"title":"SDKs","description":"Official single-file SDKs for TypeScript/JavaScript and Python.","href":"/en/api/sdks"},{"title":"Changelog \u0026 versioning","href":"/en/api/changelog"}]},{"group":"Reference","pages":[{"group":"OAuth","pages":[{"title":"Issue an access token","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json post /oauth/token","href":"/api-reference/oauth/issue-an-access-token"},{"title":"Application context","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/me","href":"/api-reference/oauth/application-context"}]},{"group":"Contacts","pages":[{"title":"List contacts","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/contacts","href":"/api-reference/contacts/list-contacts"},{"title":"Create contact","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json post /v1/contacts","href":"/api-reference/contacts/create-contact"},{"title":"Structured search","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json post /v1/contacts/search","href":"/api-reference/contacts/structured-search"},{"title":"Get contact","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/contacts/{id}","href":"/api-reference/contacts/get-contact"},{"title":"Delete (soft)","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json delete /v1/contacts/{id}","href":"/api-reference/contacts/delete-soft"},{"title":"Update (PATCH)","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json patch /v1/contacts/{id}","href":"/api-reference/contacts/update-patch"},{"title":"Add tag","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json post /v1/contacts/{id}/tags","href":"/api-reference/contacts/add-tag"},{"title":"Remove tag","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json delete /v1/contacts/{id}/tags/{tag}","href":"/api-reference/contacts/remove-tag"},{"title":"List identifiers","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/contacts/{id}/identifiers","href":"/api-reference/contacts/list-identifiers"},{"title":"Add identifier","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json post /v1/contacts/{id}/identifiers","href":"/api-reference/contacts/add-identifier"},{"title":"Remove identifier","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json delete /v1/contacts/{id}/identifiers/{identifier_id}","href":"/api-reference/contacts/remove-identifier"}]},{"group":"Jobs","pages":[{"title":"Bulk contact operation (async)","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json post /v1/contacts/bulk","href":"/api-reference/jobs/bulk-contact-operation-async"},{"title":"Bulk contact import (async)","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json post /v1/contacts/import","href":"/api-reference/jobs/bulk-contact-import-async"},{"title":"Export a report (async)","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json post /v1/analytics/export","href":"/api-reference/jobs/export-a-report-async"},{"title":"Get job status","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/jobs/{id}","href":"/api-reference/jobs/get-job-status"}]},{"group":"Observability","pages":[{"title":"API usage by day","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/usage","href":"/api-reference/observability/api-usage-by-day"},{"title":"Write audit log","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/audit-logs","href":"/api-reference/observability/write-audit-log"}]},{"group":"Conversations","pages":[{"title":"List conversations","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/conversations","href":"/api-reference/conversations/list-conversations"},{"title":"Start conversation","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json post /v1/conversations","href":"/api-reference/conversations/start-conversation"},{"title":"Get conversation","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/conversations/{id}","href":"/api-reference/conversations/get-conversation"},{"title":"Change status","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json post /v1/conversations/{id}/status","href":"/api-reference/conversations/change-status"},{"title":"Close","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json post /v1/conversations/{id}/close","href":"/api-reference/conversations/close"},{"title":"Reopen","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json post /v1/conversations/{id}/reopen","href":"/api-reference/conversations/reopen"},{"title":"Assign / unassign","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json post /v1/conversations/{id}/assign","href":"/api-reference/conversations/assign-unassign"},{"title":"Change priority","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json post /v1/conversations/{id}/priority","href":"/api-reference/conversations/change-priority"},{"title":"Mark as read","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json post /v1/conversations/{id}/read","href":"/api-reference/conversations/mark-as-read"},{"title":"Timeline","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/conversations/{id}/events","href":"/api-reference/conversations/timeline"},{"title":"Conversation messages","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/conversations/{id}/messages","href":"/api-reference/conversations/conversation-messages"}]},{"group":"Messages","pages":[{"title":"Send message","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json post /v1/messages","href":"/api-reference/messages/send-message"},{"title":"Message status","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/messages/{id}","href":"/api-reference/messages/message-status"}]},{"group":"Channels","pages":[{"title":"List channels","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/channels","href":"/api-reference/channels/list-channels"},{"title":"Get channel","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/channels/{id}","href":"/api-reference/channels/get-channel"}]},{"group":"Inboxes","pages":[{"title":"List inboxes","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/inboxes","href":"/api-reference/inboxes/list-inboxes"},{"title":"Get inbox","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/inboxes/{id}","href":"/api-reference/inboxes/get-inbox"}]},{"group":"Campaigns","pages":[{"title":"List campaigns","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/campaigns","href":"/api-reference/campaigns/list-campaigns"},{"title":"Create campaign","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json post /v1/campaigns","href":"/api-reference/campaigns/create-campaign"},{"title":"Get campaign","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/campaigns/{id}","href":"/api-reference/campaigns/get-campaign"},{"title":"Delete","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json delete /v1/campaigns/{id}","href":"/api-reference/campaigns/delete"},{"title":"Update draft","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json patch /v1/campaigns/{id}","href":"/api-reference/campaigns/update-draft"},{"title":"Launch (creates a run)","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json post /v1/campaigns/{id}/launch","href":"/api-reference/campaigns/launch-creates-a-run"},{"title":"List runs","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/campaigns/{id}/runs","href":"/api-reference/campaigns/list-runs"},{"title":"Get run","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/campaigns/{id}/runs/{run_id}","href":"/api-reference/campaigns/get-run"},{"title":"Pause run","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json post /v1/campaigns/{id}/runs/{run_id}/pause","href":"/api-reference/campaigns/pause-run"},{"title":"Resume run","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json post /v1/campaigns/{id}/runs/{run_id}/resume","href":"/api-reference/campaigns/resume-run"},{"title":"Cancel run","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json post /v1/campaigns/{id}/runs/{run_id}/cancel","href":"/api-reference/campaigns/cancel-run"}]},{"group":"Analytics","pages":[{"title":"Report: overview","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/analytics/overview","href":"/api-reference/analytics/report:-overview"},{"title":"Report: conversations","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/analytics/conversations","href":"/api-reference/analytics/report:-conversations"},{"title":"Report: messages","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/analytics/messages","href":"/api-reference/analytics/report:-messages"},{"title":"Report: service","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/analytics/service","href":"/api-reference/analytics/report:-service"},{"title":"Report: agents","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/analytics/agents","href":"/api-reference/analytics/report:-agents"},{"title":"Report: sla","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/analytics/sla","href":"/api-reference/analytics/report:-sla"},{"title":"Report: csat","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/analytics/csat","href":"/api-reference/analytics/report:-csat"}]},{"group":"Webhooks","pages":[{"title":"List webhooks","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/webhooks","href":"/api-reference/webhooks/list-webhooks"},{"title":"Create webhook","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json post /v1/webhooks","href":"/api-reference/webhooks/create-webhook"},{"title":"Event catalog","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/webhooks/events","href":"/api-reference/webhooks/event-catalog"},{"title":"Get webhook","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/webhooks/{id}","href":"/api-reference/webhooks/get-webhook"},{"title":"Delete webhook","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json delete /v1/webhooks/{id}","href":"/api-reference/webhooks/delete-webhook"},{"title":"Update webhook","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json patch /v1/webhooks/{id}","href":"/api-reference/webhooks/update-webhook"},{"title":"Rotate signing secret","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json post /v1/webhooks/{id}/rotate_secret","href":"/api-reference/webhooks/rotate-signing-secret"}]},{"group":"Deals","pages":[{"title":"List deals","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/deals","href":"/api-reference/deals/list-deals"},{"title":"Create deal","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json post /v1/deals","href":"/api-reference/deals/create-deal"},{"title":"Get deal","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/deals/{id}","href":"/api-reference/deals/get-deal"},{"title":"Delete deal","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json delete /v1/deals/{id}","href":"/api-reference/deals/delete-deal"},{"title":"Update deal","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json patch /v1/deals/{id}","href":"/api-reference/deals/update-deal"}]},{"group":"Tasks","pages":[{"title":"List tasks","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/tasks","href":"/api-reference/tasks/list-tasks"},{"title":"Create task","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json post /v1/tasks","href":"/api-reference/tasks/create-task"},{"title":"Get task","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/tasks/{id}","href":"/api-reference/tasks/get-task"},{"title":"Delete task","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json delete /v1/tasks/{id}","href":"/api-reference/tasks/delete-task"},{"title":"Update task","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json patch /v1/tasks/{id}","href":"/api-reference/tasks/update-task"}]},{"group":"Companies","pages":[{"title":"List companies","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/companies","href":"/api-reference/companies/list-companies"},{"title":"Create company","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json post /v1/companies","href":"/api-reference/companies/create-company"},{"title":"Get company","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/companies/{id}","href":"/api-reference/companies/get-company"},{"title":"Delete company","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json delete /v1/companies/{id}","href":"/api-reference/companies/delete-company"},{"title":"Update company","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json patch /v1/companies/{id}","href":"/api-reference/companies/update-company"}]},{"group":"Tickets","pages":[{"title":"List tickets","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/tickets","href":"/api-reference/tickets/list-tickets"},{"title":"Create ticket","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json post /v1/tickets","href":"/api-reference/tickets/create-ticket"},{"title":"Get ticket","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/tickets/{id}","href":"/api-reference/tickets/get-ticket"},{"title":"Delete ticket","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json delete /v1/tickets/{id}","href":"/api-reference/tickets/delete-ticket"},{"title":"Update ticket","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json patch /v1/tickets/{id}","href":"/api-reference/tickets/update-ticket"}]},{"group":"Custom objects","pages":[{"title":"List custom objects","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/objects","href":"/api-reference/custom-objects/list-custom-objects"},{"title":"Get custom object (schema)","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/objects/{key}","href":"/api-reference/custom-objects/get-custom-object-schema"},{"title":"List records","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/objects/{key}/records","href":"/api-reference/custom-objects/list-records"},{"title":"Create record","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json post /v1/objects/{key}/records","href":"/api-reference/custom-objects/create-record"},{"title":"Create or update by a unique property","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json post /v1/objects/{key}/records/upsert","href":"/api-reference/custom-objects/create-or-update-by-a-unique-property"},{"title":"Get record","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/objects/{key}/records/{id}","href":"/api-reference/custom-objects/get-record"},{"title":"Delete record","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json delete /v1/objects/{key}/records/{id}","href":"/api-reference/custom-objects/delete-record"},{"title":"Update record","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json patch /v1/objects/{key}/records/{id}","href":"/api-reference/custom-objects/update-record"},{"title":"List record links","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/objects/{key}/records/{id}/links","href":"/api-reference/custom-objects/list-record-links"},{"title":"Link record","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json post /v1/objects/{key}/records/{id}/links","href":"/api-reference/custom-objects/link-record"},{"title":"Unlink record","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json delete /v1/objects/{key}/records/{id}/links/{link_id}","href":"/api-reference/custom-objects/unlink-record"},{"title":"Add note to record","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json post /v1/objects/{key}/records/{id}/notes","href":"/api-reference/custom-objects/add-note-to-record"}]},{"group":"Notes","pages":[{"title":"List notes","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/notes","href":"/api-reference/notes/list-notes"},{"title":"Create note","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json post /v1/notes","href":"/api-reference/notes/create-note"},{"title":"Get note","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/notes/{id}","href":"/api-reference/notes/get-note"},{"title":"Delete note","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json delete /v1/notes/{id}","href":"/api-reference/notes/delete-note"},{"title":"Update note","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json patch /v1/notes/{id}","href":"/api-reference/notes/update-note"}]},{"group":"Segments","pages":[{"title":"List segments","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/segments","href":"/api-reference/segments/list-segments"},{"title":"Get segment","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/segments/{id}","href":"/api-reference/segments/get-segment"},{"title":"Segment members","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/segments/{id}/members","href":"/api-reference/segments/segment-members"}]},{"group":"Macros","pages":[{"title":"List macros","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/macros","href":"/api-reference/macros/list-macros"},{"title":"Get macro","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/macros/{id}","href":"/api-reference/macros/get-macro"}]},{"group":"Settings","pages":[{"title":"List queues","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/queues","href":"/api-reference/settings/list-queues"},{"title":"List agents (workspace members)","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/agents","href":"/api-reference/settings/list-agents-workspace-members"},{"title":"List WhatsApp templates","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/whatsapp/templates","href":"/api-reference/settings/list-whatsapp-templates"},{"title":"List business hours","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/business-hours","href":"/api-reference/settings/list-business-hours"},{"title":"List priorities","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/priorities","href":"/api-reference/settings/list-priorities"},{"title":"List presence statuses","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/presence-statuses","href":"/api-reference/settings/list-presence-statuses"},{"title":"List wrap-up codes","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/wrapup-codes","href":"/api-reference/settings/list-wrap-up-codes"},{"title":"List custom-field definitions","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/custom-fields","href":"/api-reference/settings/list-custom-field-definitions"}]},{"group":"Pipelines","pages":[{"title":"Deal stage state","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/deals/{id}/stage","href":"/api-reference/pipelines/deal-stage-state"},{"title":"Move deal to a stage (with stage rules)","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json post /v1/deals/{id}/move","href":"/api-reference/pipelines/move-deal-to-a-stage-with-stage-rules"},{"title":"Record stage state","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/objects/{key}/records/{id}/stage","href":"/api-reference/pipelines/record-stage-state"},{"title":"Move record to a stage (with stage rules)","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json post /v1/objects/{key}/records/{id}/move","href":"/api-reference/pipelines/move-record-to-a-stage-with-stage-rules"},{"title":"List stage approvals","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/approvals","href":"/api-reference/pipelines/list-stage-approvals"},{"title":"Get stage approval","deprecated":null,"version":null,"openapi":"https://api.apyconnect.io/v1/openapi.json get /v1/approvals/{id}","href":"/api-reference/pipelines/get-stage-approval"}]}]}]}]}]},"basePath":"","title":"Webhooks - ApyConnect","buildId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","deploymentId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","dynamics":[],"chunks":[]}