Modules
Integrations
External providers via the adapter pattern.
The integration service connects external providers to the CRM. Each provider (Meta, WhatsApp, Google Ads, website forms) has an adapter that knows how to verify its webhooks and normalize its payloads.
Webhook flow
- A webhook hits
/webhooks/:provider. - Its signature is verified against the exact raw request bytes.
- The matching integration + decrypted auth is loaded.
- The adapter parses the payload into a normalized event.
- The event is persisted and published to RabbitMQ for the CRM to consume.
Auth tokens are encrypted at rest. To add a provider, create an adapter, register it in the adapter factory, and add its integration type.