Attribute downstream conversions (signup, meeting booked, purchase) back to the exact campaign and recipient that drove them, even when the conversion happens on your own app. Modelled on Meta's Conversions API: a server-side events endpoint plus a browser pixel, deduplicated by event id.
A conversion link in your email resolves, per recipient, to a short correlation id (the cid). The recipient lands on your page with ?rhq=<cid>. Your page stashes the cid so it survives a multi step flow, and on conversion you send it back. ReachHQ resolves the cid to the recipient and records the conversion against the campaign.
?rhq=<cid>.cid (cookie or local storage).cid back via a server postback or pixel.| Type | Meta CAPI alias | Notes |
|---|---|---|
SIGNUP | CompleteRegistration | account or trial created |
MEETING_BOOKED | Schedule | demo or call booked |
PURCHASE | Purchase | send value and currency |
event_name accepts either the ReachHQ type or its Meta CAPI alias.
Server side is the recommended path. Post the event the moment the conversion completes. event_id is the dedup key: the same logical conversion fired by both the pixel and the server collapses to one. A valid cid is required and is the strongest match signal.
curl -X POST https://track.reachhq.io/capi/v1/events \
-H "Content-Type: application/json" \
-d '{
"events": [{
"event_name": "CompleteRegistration",
"event_id": "signup_abc123",
"action_source": "website",
"user_data": { "cid": "aZ3kP9xQ2bW7", "em": "<sha256(lowercased email)>" },
"custom_data": { "value": 99.00, "currency": "USD" }
}]
}'
# { "received": 1, "results": [{ "event_id": "signup_abc123", "status": "accepted" }] }Conversions outside the attribution window (90 days from the click by default) are rejected.
For a zero backend install, drop a 1x1 pixel on your post conversion page. Optional query params: value, currency, em.
<img src="https://track.reachhq.io/capi/p?ev=CompleteRegistration&eid=signup_abc123&cid=aZ3kP9xQ2bW7"
width="1" height="1" alt="" />If your signup page is ReachHQ itself, conversions fire automatically. Point the conversion link at your register page; the page captures ?rhq=<cid> and a successful signup reports a CompleteRegistration for you, with no postback to write. For any other app, use the server postback or pixel above.
Prefer a direct link in replies. A direct link to your own domain has the best inbox placement, and conversions are still tracked through the cid. Click tracking wraps the link through a redirect on your tracking domain; mail gateways re scan links on every reply, and a redirect behind friendly anchor text is a stronger spam signal than a plain URL. Only enable click tracking over a dedicated, CNAME aligned, warmed tracking domain. Friendly anchor text such as Sign up here is fine when the link is the direct one.