Developers / Integrations and webhooks

Integrations and webhooks

Connect a core system to QuiQSol: a scoped API key to sync in, signed webhooks out, field mapping, conflict rules, scheduled pulls and a delivery log.

2 min read
On this page

An integration bundles what a two-way connection with another system needs: an API key to sync records in, a webhook to send events out, field mappings and the fields your team sees on each contact. Create one under Settings, Developer Platform, Integrations.

1. Create the integration

Give it a System key (for example EMPLE_LIFE_PAS) and a Label your team will recognise. QuiQSol creates an API key and a webhook secret.

2. Sync records in

Your system calls POST /contacts and POST /companies with its own externalId. Sending the same ID again updates the same record.

3. Map your fields

Under Field mapping (inbound), map each source field to a QuiQSol field on the Contact or Company, or to customFields.<key>. Email, phone and name always sync directly.

For each mapping, choose what happens when both sides have a value on the next sync: Source wins or Quiq wins.

4. Show your fields to the team

Business Context Panel fields puts synced fields on the contact record with a label your reps understand, for example Policy status. The panel stays hidden until you add at least one field.

5. Send events out with a webhook

Add an Outbound webhook URL. Webhooks are sent by a Send webhook step in Quiq Automation, so you decide which events go out and what they carry. The URL must be a public http or https address.

How do I verify a webhook?

Every payload carries an X-Quiq-Signature header: the hex HMAC-SHA256 of the raw request body, keyed with your webhook secret.

import crypto from 'node:crypto';

function isFromQuiq(rawBody, signature, secret) {
  const expected = crypto.createHmac('sha256', secret).update(rawBody).digest('hex');
  return crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(signature));
}

What happens when a delivery fails?

QuiQSol tries three times in a row, two and six seconds apart. If all three fail, a background job keeps retrying with backoff. Every attempt is logged with its time, attempt number, status, HTTP code and error under the integration's deliveries, and you can retry one by hand.

How do I change the secret?

Click Roll the webhook secret. The receiving system must verify against the new secret immediately.

Can QuiQSol pull from my system instead?

Yes. Set a Scheduled pull URL and any request headers, for example an Authorization header. QuiQSol fetches it on a schedule, and Poll now runs it straight away.

How do I know it is healthy?

The Integrations tab shows active integrations, verified identities, records awaiting review, sync volume and webhook success rate over 14 days.

What about sales pipelines?

Pipelines in QuiQSol are your business units, each with its own deal stages, teams and deals. Set them up in CRM settings. Records synced through an integration land in the same CRM.