External CRM Integration & Contact Syncing

QuickReply.ai can sync your Contacts/Leads to any external CRM that exposes HTTP APIs or webhooks.

Overview

QuickReply.ai can sync your Contacts/Leads to any external CRM that exposes HTTP APIs or webhooks.

With this integration you can:

  • Create new leads in your CRM whenever QuickReply.ai captures a new contact

  • Update existing leads in your CRM whenever contact attributes change in QuickReply.ai

  • Optionally fetch and de-duplicate leads in your CRM before creating new ones

QuickReply.ai calls your CRM APIs over HTTPS (JSON or form-encoded), using your auth mechanism (e.g. static API key).


How it Works (High-level Flow)

spinner
1

A contact changes in QuickReply.ai

  • New contact created (from Popup / Website Chat/ WhatsApp chat or Instagram Chat, etc.)

  • Existing contact updated (name, email, tags, attributes, etc.)

2

QuickReply.ai prepares a payload

Typical fields:

  • phone – with country code (recommended primary identifier)

  • email – optional identifier

  • name – full name of the contact

  • custom_fields – key–value attributes mapped to your CRM schema

  • Optionally: lead_id / contact_id – if previously returned by your CRM

3

QuickReply.ai calls your CRM endpoints

Depending on configuration, QuickReply.ai will:

  • Directly call Create Lead for new contacts

  • Call Fetch Lead first (using phone/email/lead_id), then decide to Create or Update

  • Call Update Lead whenever an existing contact changes in QuickReply.ai

4

CRM returns its Lead/Contact ID

  • On success, your CRM returns a unique identifier (e.g. lead_id / contact_id).

  • QuickReply.ai stores this and uses it for subsequent updates to avoid duplicates.

5

Sync Timing

  • Contacts are synced in near real-time.

  • By default, QuickReply.ai waits for ~5 minutes of inactivity before syncing to avoid noisy updates and excessive API calls.


Pre-requisites

To use this integration, you need:

  • An active QuickReply.ai account

  • An active CRM with APIs to:

    • Create a lead/contact

    • Fetch a lead/contact

    • Update a lead/contact

  • A static Auth Key / token or similar mechanism to secure your APIs


API Contract (Your CRM)

QuickReply.ai expects your CRM to expose three HTTP endpoints:

You can use any URL structure you like (e.g. /api/leads/create instead of /crm/create) as long as it matches the contract below.

circle-check

1. Creating a new Lead - CRM API

Endpoint

Headers

Name
Type
Description

Auth-Key*

Authorization Header

Your shared API key / token (required)

Request Body

Name
Type
Description

phone*

string

Phone number with country code

name*

string

Full name of the contact

email

string

Email address of the contact

custom_fields

Key-Value Pairs

Extra Attributes which you want to sync to the CRM, where the key-names are the respective schema field names in the CRM

circle-check

Sample cURL request

API Response

2. Fetching an Existing Lead - CRM API

Used by QuickReply.ai to check if a lead already exists before creating a new one or to fetch your CRM’s lead_id.

Endpoint

circle-check

Headers

Name
Type
Description

Auth-Key*

Authorization Header

Your shared API key / token (required)

Request Body (or query parameters)

At least one of these should be accepted:

Name
Type
Description

phone

string

Fetch by phone (with country code)

email

string

Fetch by email

lead_id

string

Fetch by CRM lead ID (if already known)

circle-exclamation

Sample cURL Request

API Response

3. Updating an Existing Lead - CRM API

Endpoint

or

Headers

Name
Type
Description

Auth-Key*

Authorization Header

Your shared API key / token (required)

Path / Query Parameter

Name
Type
Description

lead_id*

string

Respective Lead ID in the CRM (The same as returned in response from Fetch Lead API)

Request Body

Name
Type
Description

phone*

string

Phone Number of the user (With Country Code)

name*

string

Full Name of the user

email

string

Email of the user

custom_fields

Key-Value Pairs

Extra Attributes which you want to sync to the CRM, where the key-names are the respective schema field names in the CRM

circle-exclamation

Sample cURL Request

API Response


Webhooks & Security Requirements

  • Endpoints must be publicly accessible HTTPS URLs

  • Accept JSON (recommended) or Form POST bodies

  • Support a static auth mechanism, such as:

    • Auth-Key header

    • Authorization: Bearer <token> header

    • A shared secret in the body/query (less secure; not recommended if you can avoid it)


Implementation Steps

  1. Design your CRM endpoints

    • Decide URL structure for create, fetch, and update

    • Make sure they match the field structure above

  2. Implement and test locally

    • Implement your APIs and test with curl/Postman

    • Confirm responses and error codes are correct

  3. Share details with QuickReply.ai

    Send the following to your POC or QuickReply.ai's support:

    • Base URL and full paths for Create/Fetch/Update

    • Auth type and keys (in a secure channel)

    • Any special field mappings (e.g. utm_campaigncrm_campaign_code)

  4. QuickReply.ai configuration

    • QuickReply.ai team configures your endpoints and mapping

    • They enable contact sync and test with sample contacts

    • Typical go-live time is around 5 business days, depending on complexity.


FAQs

chevron-rightIs the sync real-time?hashtag

It’s near real-time. By default, QuickReply.ai waits ~5 minutes after the last change before syncing to avoid too many small updates. This delay can be adjusted (shorter intervals may incur additional charges).

chevron-rightCan we use a single endpoint for both create and update?hashtag

Yes. As long as your endpoint can decide whether to create or update based on the payload (e.g. presence of lead_id, or unique phone/email), you can use a single URL.

chevron-rightCan the payload structure be customized to our CRM?hashtag

Yes. Field names under custom_fields, or even the top-level field naming, can be customized by the QuickReply.ai team to match your CRM’s schema.

chevron-rightWhat happens if our API fails (4xx/5xx)?hashtag

QuickReply.ai will treat this as a sync failure and will retry if there is new change in contact details or attributes.

chevron-rightWe don’t have a Fetch API. Can we still integrate?hashtag

Yes. In that case QuickReply.ai will typically only use the Create and Update APIs, and you must handle de-duplication based on phone/email on your side.

Last updated