On this page

Webhooks

ScaliQ can POST JSON to your HTTPS URL when events occur.

Setup

  1. Open app.scaliq.ai/api-mcp → Webhooks
  2. Create a subscription: name, HTTPS URL, events, optional campaign filter
  3. Optionally set a signing secret (you choose the string)

Default max 5 webhooks per workspace. Manage subscriptions in the dashboard (not via REST in v1).

Events

EventWhen
reply.receivedProspect replied
connection.acceptedConnection accepted
lead.taggedLead tagged (manual or auto)
account.disconnectedLinkedIn account disconnected / failed

Payload shape

{
  "id": "evt_...",
  "type": "reply.received",
  "createdAt": "2026-07-24T05:00:00.000Z",
  "data": {
    "campaignId": "search_abc",
    "leadId": "lead_xyz",
    "accountId": "acc_...",
    "linkedinUrl": "https://www.linkedin.com/in/jane-doe/",
    "fullName": "Jane Doe",
    "messageText": "Thanks, interested in learning more.",
    "tag": null
  }
}

data fields present depend on the event (messageText on replies; tag on tag events; etc.). messageText may be truncated (~4000 chars).

connection.accepted (example)

{
  "id": "evt_...",
  "type": "connection.accepted",
  "createdAt": "2026-07-24T05:00:00.000Z",
  "data": {
    "campaignId": "search_abc",
    "leadId": "lead_xyz",
    "accountId": "acc_...",
    "linkedinUrl": "https://www.linkedin.com/in/jane-doe/",
    "fullName": "Jane Doe",
    "messageText": null,
    "tag": null
  }
}

lead.tagged (example)

{
  "id": "evt_...",
  "type": "lead.tagged",
  "createdAt": "2026-07-24T05:00:00.000Z",
  "data": {
    "campaignId": "search_abc",
    "leadId": "lead_xyz",
    "accountId": "acc_...",
    "linkedinUrl": "https://www.linkedin.com/in/jane-doe/",
    "fullName": "Jane Doe",
    "messageText": null,
    "tag": "Interested"
  }
}

account.disconnected (example)

{
  "id": "evt_...",
  "type": "account.disconnected",
  "createdAt": "2026-07-24T05:00:00.000Z",
  "data": {
    "campaignId": null,
    "leadId": null,
    "accountId": "acc_...",
    "linkedinUrl": null,
    "fullName": null,
    "messageText": null,
    "tag": null
  }
}

Signing (optional)

When you set a signing secret in app.scaliq.ai/api-mcp, every delivery includes:

X-ScaliQ-Signature: <your-secret>

The value is exactly the string you entered (e.g. password1234) — not an HMAC, not sha256=<hex>.

n8n: Header Auth → header X-ScaliQ-Signature, value = that same secret.

If no secret is set → deliveries are unsigned (no X-ScaliQ-Signature header).

See verify webhook signature.

Delivery

  • Up to 3 attempts with backoff
  • At-most-once (not guaranteed if the worker dies mid-flight)
  • Failures never block ScaliQ inbox / tagging flows