Skip to content

Integrations

Open Settings, then choose the Connections area to connect Kasbly to channels, tools, apps, and plugins.

Settings hub → Connections
The Connections area in the Settings hub

Settings hub → Connections

The Connections area contains these goals:

  • Add a ready-made setup — install a Marketplace pack.
  • Connect WhatsApp, tools & apps — manage API integrations and AI capabilities.
  • Connect WhatsApp Business — manage business accounts, numbers, templates, and verification.
  • Check connection health — review channel and integration health checks.
  • Get alerted about activity — choose notification and alert delivery.
  • Turn features on/off — manage advanced workspace feature flags.
  • Industry plugins — open installed plugins and their configuration.

Use Search settings… to find one of these goals directly. Open a goal card for its summary and controls; when a card offers a full-page action such as Manage integrations, use it for the complete editor.

For programmatic access with your own keys, open the Developer keys goal in People & access, or see API Keys.

Choose Custom CRM (API) when your CRM exposes a REST endpoint. Kasbly sends Authorization: Bearer <API key> and JSON to these paths:

  • GET /health (or the base URL) checks the connection.
  • POST /contacts receives { contacts: [...] }; each contact has id, phone, name, email, city, language, tags, customFields, and leadScore.
  • GET /contacts?since=<ISO-8601> returns an array, { data: [...] }, { contacts: [...] }, or { results: [...] } using those same fields.
  • POST /deals receives { deals: [...] }; each deal has id, customerId, customerPhone, customerEmail, customerName, stage, value, currency, and title.
  • GET /deals?since=<ISO-8601> returns one of the same array envelopes and the same deal fields.
  • POST /deals/{id}/stage updates one deal’s stage. Send { stageId, externalStageId }, with the same external stage ID in both fields. stageId is the external stage ID you enter in the CRM Stage Mapping table.

For two-way sync, return a stable id and a customerPhone for every deal. When the associated person has no phone, include customerEmail so Kasbly can match an existing customer by email; an unmatched email-only person is skipped with recovery guidance in Sync History. Use the CRM Stage Mapping table to map each incoming stage value to a Kasbly lifecycle stage. Omit a field your CRM does not know rather than sending an empty replacement value.

The stage Kasbly sends on POST /deals is the external stage ID from that same table, matching POST /deals/{id}/stage. A lifecycle stage with no outbound mapping is pushed without a stage, so your CRM keeps the stage it already has instead of receiving a Kasbly stage name.

To send a stage or contact change from your CRM to Kasbly, POST the event to /v1/webhooks/crm/custom. Include the tenant ID for the Kasbly workspace that uses Custom CRM (API) in X-Tenant-Id.

Authenticate the request with either of these forms:

  • Authorization: Bearer <API key>, using the API key configured for the Custom CRM connection.
  • X-Webhook-Secret: <signature>, where signature is the lowercase hex HMAC-SHA256 of the raw JSON request body, keyed with the dedicated webhook secret shown once after you save the Custom CRM connection. Copy that secret before leaving the settings page. Existing integrations that sign with the configured API key remain supported for compatibility, but new integrations should use the dedicated webhook secret.

The payload may put event data at the top level or in data or payload. Use event or type to identify an event; values containing deal or opportunity are handled as deal events, while values containing contact or lead are handled as contact events. For a stage change, send the external deal ID in one of id, external_id, objectId, object_id, record_id, or resource_id, and the external stage in one of newStageId, new_stage_id, newStageName, new_stage_name, externalStageId, external_stage_id, externalStageName, external_stage_name, externalStage, external_stage, stage_id, deal_stage, pipeline_stage, stage, or pipeline. Contact matching accepts phone, phone_number, customerPhone, customer_phone, person_phone, or contact_phone; it also accepts email, customerEmail, customer_email, person_email, or contact_email.

HubSpot CRM uses OAuth and creates the properties Kasbly needs during connection. See the setup guide for the required deal identifier and how to reconnect a portal whose administrator permissions blocked setup.

Pipedrive CRM uses OAuth and creates the deal and person fields Kasbly needs during connection. See the setup guide for the manual field names if an administrator must complete setup.