A campaign can produce a reply without producing a meeting. A prospect can book through a calendar link, cancel, then book again. If your LinkedIn outreach dashboard shows ‘meetings booked,’ ask which system created that number and how it found the campaign. The useful answer is conditional: a tool can report bookings when it receives or joins a real scheduling record, but a reply or an ‘interested’ label is not that record.
Find the system that owns the booking
HeyReach's current campaign analytics documentation lists connections, messages, replies, auto-tagged leads and interested leads. Expandi documents a webhook for a contact reply. Those events help a team find conversations worth reviewing. Neither of those inspected event definitions turns a reply into a scheduled appointment; this is a statement about the cited documentation, not a verdict on every integration either vendor offers.
The scheduler or CRM normally supplies the booking record. Calendly documents an event when an invitee schedules and another when the event is canceled. HubSpot says a booking through a scheduling page with a connected calendar creates a meeting record. Ask a vendor to show the booking object's source, timestamp, event ID and contact match before accepting a campaign's meeting total. A lead marked ‘interested’ is still a lead until the appointment exists.
Sources: HeyReach campaign analytics overview, Expandi webhook events, Calendly scheduled and canceled event webhooks, HubSpot scheduling pages and booking records
A tagged booking link supplies a label, not proof of influence
For an aggregate campaign count, give the scheduling link a campaign tag, for example `?utm_source=linkedin&utm_medium=outreach&utm_campaign=november_pilot`. Calendly says its tracking IDs can be filtered and exported with scheduled meetings. HubSpot says tracking parameters on its meeting link populate the contact's source, medium and campaign of last booking. Check the team's exact scheduling product and plan before assuming the same fields exist.
That label identifies the link used for the booking. It does not establish who read a LinkedIn message, whether the recipient forwarded the link, or which earlier conversation caused the decision. HubSpot's property is specifically about the most recent booking; it is a poor substitute for an immutable campaign history. Keep personally identifying data out of URL tags, and store the campaign-to-contact match in a controlled CRM record if the team needs it.
Sources: Calendly tracking parameters, HubSpot scheduling pages and booking records, HubSpot default contact properties
Reconcile canceled and held meetings separately
A booking count can rise twice for one prospect who cancels and reschedules. Calendly's documented webhook events let an integration receive both scheduled and canceled changes, but the team's report still needs a rule for reschedules, duplicate events and campaign reassignment. State the rule before reading the result: for example, count one active appointment per prospect and campaign as of a named reporting date, then preserve the event history for audit.
‘Booked’ also differs from ‘held.’ HubSpot says reports of completed meetings should use completed activity and meeting outcome. A calendar reservation alone does not show attendance. If the purchasing decision depends on qualified meetings that happened, require a separate outcome field and owner review; do not rename bookings as held meetings in a dashboard.
Consider a test prospect who schedules Monday, cancels Tuesday, and chooses Thursday. The event log contains two creations and one cancellation. A dashboard that simply counts creation events shows two bookings; a current-appointments view should show one. If the prospect never attends Thursday, the held-meeting count stays at zero. This example is a reconciliation test, not a vendor-specific claim.
Sources: Calendly scheduled and canceled event webhooks, HubSpot meeting analytics
Make the vendor demonstrate one traceable meeting
Use a consenting internal test contact, an inactive or supervised campaign, and the actual scheduling system. Record the campaign and contact IDs. Send or share a tagged meeting link through the permitted workflow, book one appointment, then cancel it. Compare the scheduler event, CRM meeting, vendor dashboard and export after each step. Ask when sync runs and what happens if the prospect's booking email does not match the LinkedIn contact record.
A usable export should let an operator trace the reported meeting to a booking event, matched contact, campaign, status and reporting date. If the tool only counts replies or cannot explain a cancellation, keep meetings in the scheduler or CRM and join them manually in a small review sheet. That is slower, but it preserves the difference between a conversation and an appointment. For link-click measurement and experiment denominators, use the separate guides; neither metric fills a missing booking record.
LinkedIn says third-party software that scrapes or automates activity on its website is prohibited and may lead to account restrictions. A meeting report or integration does not approve automated sending. The tracking test can use manually sent messages and the team's own scheduling link.
Sources: HeyReach campaign analytics overview, Calendly tracking parameters, LinkedIn prohibited software and extensions
