Track Appointments Without the Add-On
Track booked appointments and meeting outcomes in Lead Distro AI using outcome stages, call outcomes, and conditional pricing. Works on any plan with no limited-release feature required.
Three ways to do this today
You do not need the per-appointment billing add-on to know which leads booked. These three approaches use features already on your account, and they can be combined.
1. Custom outcome stages (recommended)
Outcome stages let you build your own pipeline on a campaign instead of the three built-in outcomes. Open a campaign, find the Outcome Stages card, and add the stages you actually use.
Every stage maps to one of the three system outcomes, so your billing and reporting keep working while the labels become yours. A typical appointment pipeline:
| Your stage | Maps to | Why |
|---|---|---|
| Meeting Booked | Pending | The appointment exists but has not happened, so nothing is decided. |
| Showed | Converted | The meeting happened. This is the result you are paid for. |
| No Show | Not Qualified | Nobody attended, so this should not count as a win. |
| Signed | Converted | An optional deeper stage for buyers who report closes. |
Because a stage maps to a system outcome, a buyer moving a lead to Showed triggers the same conversion tracking a normal Converted lead would. You get custom labels without giving up the automation behind them.
Buyers can move stages themselves from the Partner Portal, so the person who knows whether someone showed is the person recording it. You can also fire an automation whenever a stage changes, which is how teams send a Slack alert the moment an appointment is booked.
2. Call outcomes
If your team or your buyer calls leads, the call result can carry the booking. Post appointment_set as the call outcome and it lands on the lead's timeline with the call count.
curl -X POST https://www.leaddistro.ai/api/v1/lead-update \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"lead_id": "LEAD_UUID",
"call_outcome": "appointment_set"
}'This works on any account with no setup beyond an API key. It is the fastest way to prove the loop before you build anything larger.
3. Sell appointments and leads from one campaign
Some operators sell both, at different prices, from the same source. The supported pattern is one buyer row with conditional pricing, not two buyer rows for the same buyer.
- Add a field to the campaign, for example
lead_type, with allowed values ofappointmentandlead. - On the buyer, set the base price to your raw lead price.
- Add a conditional pricing rule: when
lead_typeequalsappointment, charge the appointment price. - Set availability hours on the buyer so appointments only route while they are open to take them.
Do not create a second buyer row for the same buyer to hold the second price. Caps, filters, and reporting all key off the buyer row, so splitting one buyer in two quietly doubles their caps and splits their numbers across two rows.
When to move up to the add-on
Outcome stages record what happened. The per-appointment billing add-on goes further: it holds the payout until the appointment reaches Showed, reverses it if the status changes, and gives you a show-rate readout on the campaign. Move up when you are billing on shows rather than just reporting on them.
Frequently Asked Questions
Can I track appointments without turning on any new feature?
call_outcome: appointment_set with no setup at all.How do I charge more for a booked appointment than a raw lead?
lead_type to the campaign, set the buyer's base price to your lead price, then add a conditional pricing rule that charges the appointment price when lead_type equals appointment. Use one buyer row with two prices, never two buyer rows for the same buyer, because caps and reporting key off the buyer row.Can my buyer update the appointment stage themselves?
Related Articles
If you have any questions, send us an email at support@leaddistro.ai