Skip to content

Server-side events · Setup reference

Facebook Conversions API (Actions) destination in Twilio Segment checker

Segment's Facebook Conversions API (Actions) destination maps Segment track, page and identify calls to Meta server events, with prebuilt actions such as Purchase triggered by 'Order Completed'. Segment normalises and SHA-256 hashes customer fields for you. The Event ID field defaults to the Segment messageId, and the Facebook Pixel destination also uses messageId as eventID, so browser and server dedupe only when both come from the same Segment message. Action Source has no default and must be set.

Read from the official documentation on 9 November 2026. Sources are listed at the end.

Check your own setup

Good fit if you paste the outgoing Conversions API body (or build a sample from your mapping). It checks action_source, the 7-day event_time window, that em/ph are hashed, that fbc/fbp are present and well formed, that event_id is present, and value/currency on Purchase. It cannot read your Segment mappings or tell whether the pixel used the same messageId.

Open the Meta CAPI Event Checker

Endpoint and authentication

POST https://graph.facebook.com/{API_VERSION}/{PIXEL_ID}/events

Authorise the Segment partner connection in Meta Events Manager ('Authorize Segment Connection'), then enter Pixel ID (or dataset ID) in the destination settings.

Standard event names

Spelled exactly as Segment + Meta expects them. A near miss is treated as a different event.

EventUse it for
Purchasedefault trigger: track event 'Order Completed'
AddToCartAdd to Cart action; default trigger: track 'Product Added'
InitiateCheckoutdefault trigger: track 'Checkout Started'
ViewContentdefault trigger: track 'Product Viewed'
Searchdefault trigger: track 'Products Searched'
PageViewPage View action; default trigger: type = page
CompleteRegistrationno prebuilt action: use Custom Event with the literal event name 'CompleteRegistration'
Custom Eventany standard or custom Meta event name you type

Required and recommended fields

FieldWhat it needs
Pixel IDdestination setting, required; a dataset ID also works
Action Sourcerequired on the action. It has no default mapping, so pick a value such as website.
Event Timerequired; default maps to the Segment timestamp ($.timestamp)
Event Source URLrequired if action source is website; default mapping $.context.page.url, so server-library calls must include context.page.url
client_user_agentrequired by Meta when action_source = website; default $.context.userAgent
Currency / ValuePurchase action: currency defaults to $.properties.currency, value to $.properties.revenue

Match keys and hashing

KeyNormalise and hash
External IDSegment hashes it with SHA-256 (whitespace removed, lowercased). Default: userId, else anonymousId.
Email / First Name / Last NameSegment removes whitespace, lowercases, then SHA-256
Phone / Zip CodeSegment removes whitespace, then SHA-256
Genderlowercased; male -> m, female -> f; SHA-256
State / Countrymapped to 2-letter ANSI state / ISO 3166-1 alpha-2 country, then SHA-256
Date of Birthno formatting applied, then SHA-256; send YYYYMMDD yourself
client_ip_address / client_user_agentnot hashed; defaults $.context.ip and $.context.userAgent

Click ids

Click idWhere it comes from
fbcNot hashed. Default mapping is $.properties.fbc, so you must read the _fbc cookie in the browser and pass it on the event yourself.
fbpNot hashed. Default mapping is $.properties.fbp (from the _fbp cookie).

Deduplication

Time limits and batch sizes

How to test before you trust it

Why events arrive but don't attribute

Sources

Platforms change these rules without notice. If a source says something different from this page, the source wins.

Other platforms

All platforms