Skip to content

Report sales from Zapier or Make

When a lead you bought turns into a sale, tell us. Reported sales flow back to the ad platforms that found the lead, so the ads learn which leads become customers and find more like them.

This guide sets up one automation: when a deal is won in your CRM, report it to Sent 24/7. It takes about ten minutes and needs no changes to your CRM. We find the lead by the customer’s phone or email, so you don’t need to store our lead ID anywhere.

  • Your postback API key. In the buyer portal, open API and generate your key. It starts with pk_live_ and is shown once, so copy it somewhere safe. Keep it out of shared notes: anyone with it can update your leads.
  • Your won stage. Most accounts use closed_won. The portal’s API page lists the stages your account accepts.
  • A Zapier or Make account that can send webhooks. Webhooks by Zapier needs a paid Zapier plan. If our leads already reach you through a Zapier catch hook, you have one.

Every request is a POST to:

https://api.sent247.com/api/v1/postback/disposition

with these two headers:

Authorization: Bearer pk_live_your_key
Content-Type: application/json

and a JSON body like this:

{
"phone": "0412 345 678",
"email": "[email protected]",
"stage": "closed_won",
"value": "12500",
"currency": "AUD",
"notes": "6.6kW system, signed today",
"ignore_unmatched": "true"
}
Field Required What to map
phone phone or email The customer’s phone. Any format works: 0412 345 678, +61412345678 and 61412345678 all match.
email phone or email The customer’s email. Case and spaces don’t matter. Send both when you have them.
stage yes Your won stage, usually closed_won. The stage name as the portal shows it (e.g. Closed Won) works too.
value no The deal amount. 12500, "12500" and "$12,500" are all read as 12500.
currency no e.g. AUD. Defaults to your billing currency.
notes no Anything useful, kept with the update.
ignore_unmatched recommended Set to true. See below.
  1. Trigger: your CRM. Create a Zap and pick your CRM. Choose the event that fires when a deal or opportunity changes stage, for example Updated Deal Stage. Connect your CRM account and pull in a test deal.

  2. Filter: only won deals. Add Filter by Zapier. Set it to continue only if the deal’s stage (or status) exactly matches your CRM’s won stage, e.g. Won.

  3. Action: Webhooks by Zapier, POST. Add Webhooks by Zapier and choose the POST event. Fill it in:

    • URL: https://api.sent247.com/api/v1/postback/disposition
    • Payload Type: json
    • Data: one row per field. Put the key on the left and map the value from your CRM on the right:
      • phone → the contact’s phone
      • email → the contact’s email
      • stage → type closed_won
      • value → the deal value
      • currency → type AUD
      • ignore_unmatched → type true
    • Headers:
      • Authorization → Bearer pk_live_your_key
      • Idempotency-Key → map the deal’s ID (optional, stops a replayed Zap from reporting the same sale twice)

    Leave the other options at their defaults.

  4. Test the step (see Test it safely first), then publish the Zap.

A real closed_won reports a real sale to our ad platforms, so don’t test with a made-up win against a real customer. Instead:

  1. Check the wiring with an address that can’t be a lead. Run the step once with phone left empty, email set to [email protected] and ignore_unmatched set to true. You should get 200 and {"matched": false}. That proves your key, URL and body are right without touching any lead.
  2. Then wait for a real win. The first genuine sale should come back with "matched": true and the lead, and the lead’s stage in the portal changes to Closed Won.

If you get an error instead, the response says what’s wrong:

Response Meaning Fix
400 phone or email is required Both fields were empty or unusable Check the mapping in your Data or body
400 stage ... valid stages: ... Your account doesn’t have that stage Use one from the list in the message
400 value must be a number The deal value wasn’t a number Map the numeric amount field, not a formatted label
401 Key missing, mistyped or revoked Check the Authorization header starts with Bearer
403 The key isn’t a buyer key Use your pk_live_ key from the portal
404 no lead you bought matches No match and ignore_unmatched not set Set ignore_unmatched to true
  • We only look at leads delivered to your account. Nobody else’s leads can match, and a lead sold to someone else looks exactly like no lead.
  • If the same person came to you more than once, the sale goes on the most recent one. A lead that matches both the phone and the email wins over one that matches only one of them.
  • We don’t store the phone or email you send. Each call is logged for troubleshooting with those two fields blanked out, so keep other personal details out of notes.

The same pattern works for rejections. POST to https://api.sent247.com/api/v1/postback/reject with phone or email, plus a reason your account allows (e.g. wrong_number) and optional notes. Your account’s rejection window and allowed reasons still apply; the portal’s API page lists them. See the postback API reference for every field.