Docs / Introduction / 

Send Events Using Webhooks

Send Events Using Webhooks

Events can be sent to Able CDP from custom apps using its inbound webhook. This is convenient to attribute purchases and other conversions that aren't necessarily reflected in the payment system. For example, when the service usage accumulates before being invoiced once a payment threshold is reached or next billing cycle occurs.

Custom events should be sent to Able as POST requests to https://app.ablecdp.com/uip-events/event in JSON format with Content-Type: application/json header.

Request body example for a purchase:

{
  "funnel_mark": "%%FUNNEL_MARK%%",
  "event_type": "Purchase",
  "resource": {    "deal_value": 10,
    "deal_currency": "USD",
    "deal_items": [
    	{ 
      	"name": "File download", price: 5, qty: 2, sku: "DL1", category: "High-speed"
      } 
    ], 
    "keys": { 
      "email": "john@aol.com",
      "client_id": "12354"
    }
  }
}

%%FUNNEL_MARK%% is the unique funnel identifier. sku and category in deal_items are optional, they’re used for various groupings and reporting in Google Analytics. keys must have at least one value.

Complete request format reference, only the fields marked with asterisk are mandatory:

  • * funnel_mark - unique funnel identifier, available in the Get Code section of the Able CDP Dashboard.
  • * event_type - PageView, CompleteRegistration, Purchase. Supported event types depend on the integration and generally follow Facebook standard events names.
  • * resource - detailed event and customer information

Resource object reference:

  • referrer_url
  • utm_source
  • utm_medium
  • utm_campaign
  • utm_term
  • utm_content
  • deal_value - full value of the purchase or conversion
  • deal_currency - purchase or conversion currency, mandatory when deal_value is set
  • deal_items - array of items included in the deal, optional. Each item may include name, price, qty, sku and category
  • event_source - URL for web events, name of the integration for server-to-server and offline events
  • lead - Lead object. May have arbitrary fields, which are automatically mapped by outbound CRM integrations. Suggested values are: firstName, lastName, company, country, industry
  • description - event description, used as the purchased item name when deal_items are missing.
  • message - lead form message text
  • order_id - internal unique order identifier
  • custom_data - optional extra fields passed to integrations without processing. For example, Stripe integration populates 'coupon' field when a coupon is used, and a Facebook integration sends each extra field to the destination Pixel or Event Set as a custom parameter
  • client - hash with two keys ip and ua, containing users' browser details: IP address and user-agent respectively
  • * keys - Customer (Visitor) Keys. Uniquely identify customer, linking front-end events and back-end events together. At least one supported Key must be present. Each key can be a string or an array of strings if multiple key values of the same type are known.

Supported Keys:

  • phone - phone number
  • email
  • client_id - application specific client (visitor) id
  • gclid, wbraid, gbraid - Google Ads Click Id
  • fbp, fbclid - Facebook click identifier, fbc and fbp cookies
  • ga_cookie - Google Analytics Client Id / meaningful part of _ga cookie
  • app_instance_id - a unique identifier of the Firebase app instance
  • apladid - Apple Advertising Identifier
  • andadid - Android Advertising ID
  • msclkid - Microsoft Ads / Bing Ads click id
  • ttp, tpclid - TikTok Pixel cookie and click id

In server-side integrations normally only a phone, email and/or client_id is sent, as the rest of the identifiers are tracked by the visitor tracking script and Able should be able to attribute transaction to the original visitor internally.

Able normalizes Key values such as phone or email, ignoring non-meaningful characters when matching event with existing Customer records. Phone numbers are compared internally using the last ten digits. When using Able with an ad platform that processes hashed customer information, such as Meta, it's recommended that the number should include country code.