Webhook events reference

Every event Funkel can send, payload shape, and when each one fires.

Funkel AI sends signed JSON events to public HTTPS endpoints.

Use the developer webhook reference for payload fields, setup, and examples.

Events

  • lead.discovered: an agent finds a lead.
  • lead.approved: a found lead is approved, by you or automatically.
  • reply.received: a lead replies on LinkedIn, by email, or on X.
  • message.received: an incoming LinkedIn or X message matches a known lead.
  • reaction.received: a lead reacts to one of your messages.
  • action.executed: a campaign sends an invite, message, or other action.
  • campaign.paused: a campaign is paused. The reason field says why.
  • account.disconnected: a connected sender account disconnects.

What each event includes

Events include the product, campaign, and list they belong to, when there is one, with IDs and names.

Lead events include the lead’s name, company, title, LinkedIn URL, email when known, and the sender account. contact_id is the same person across every event, so you can link a found lead to its later replies.

Envelope and signatures

Every envelope contains id, event, timestamp, and data. id is unique per event.

The headers are X-Funkel-Event, X-Funkel-Event-Id, and X-Funkel-Signature.

Verify signatures over the exact raw request body.

Delivery and retries

Each destination attempt has a ten-second timeout. Individual failures and non-2xx responses do not trigger retries.

Delivery has no ordering or exactly-once guarantee.

Store received events before processing, and use the envelope id to drop duplicates.

Use REST reads to reconcile current state when needed.