What you get
A few days after an event, Claude tells you two separate things: which follow-ups your team committed to, and which attendees your CRM shows were actually contacted. It drafts nudges for owners who are behind and sends them only on your go. Then it reads what the event did for pipeline, with sourced and influenced kept apart and nothing credited before the event day.Before you start
- The event is past and its attendees are recorded. See Record who registered and who came.
- Follow-ups were committed as tasks, usually in the debrief.
- Touch status and attribution come from a CRM connected inside heyBTW. Without one, Claude reads your CRM through your own connector and says the read is its own. See Connect.
Two facts, never one
Claude reports these separately. A completed task does not mean someone was reached, and a touch does not close a task.
Steps
1
Start the follow-through
Say: “Did anyone follow up after the Austin dinner?”Claude runs the
follow_through prompt, meant from the third day after the event, in the wind_down window. If it is day 1 or 2, it says follow-up may not have happened yet and offers the debrief first.2
Read the commitments
Claude calls get_due_tasks for the collab with
status: "open" (overdue included), then status: "completed". heyBTW decides overdue, not Claude: each row’s status is computed against the collab’s local date. A task with a due_gap has no due date and is never called overdue. This row is trimmed from a real response today:3
Read the evidence
Claude calls get_attendee_touch_status for the collab. Here “untouched” means no logged meeting or note, because emails and calls were not read. Claude says that.The CRM activity is read only for the attendees on the current page, and the summary counts the others as unresolved. Use the default page size when you want the summary.With no CRM connected inside heyBTW, the answer is
window_days defaults to 7 (1 to 90). Each attendee has a touch_state: touched, untouched, unknown_no_crm_match or unresolved. The last two are never counted as untouched. activity_source.activity_types names what the CRM read covered; a type not listed was not read. This summary is trimmed from a real response today:status: "partial" and crm_context.capability_served is false. Attendees read not_evaluated. Claude checks each one in your own CRM connector for an outbound email, call, meeting held or note inside the window, records each it finds with record_observation as followed_up with source: "agent_crm_read", and presents them as its read of your CRM.4
Nudge the owners who are behind
Claude reads each untouched person’s basis from their row in get_event_details, and nudges already recorded, then lists by owner: open and overdue tasks, and attendees still untouched. It keeps four claims apart: committed, delivered, nudged and touched.Say: “Draft a nudge to Tony about the overdue ones.”Claude drafts one short nudge per owner in your voice. It leaves out anyone nudged in the last 3 days and anyone who cancelled, and never describes an RSVP-only person as having attended. It sends only on your go, through your own chat or mail connector. With the message ID or thread link the connector returned, it records a
nudged fact with record_observation. Without proof it records nothing. A nudge is never a touch, and no task changes because a nudge went out.5
Read what the event did for pipeline
Say: “What did the Austin dinner do for pipeline?”Claude calls get_event_attribution for the collab and reports
pipeline as served: sourced_revenue (the event created the opportunity) and influenced_revenue (the event touched an existing one that progressed) are separate, and total_revenue is their sum. won_revenue is a subset already inside them, never added on top. attribution_breakdown lists each deal with its attribution_type and stage.Nothing is attributed to an event before its event day. An upcoming event reads event_tense: "upcoming", a pipeline of 0 and a gap. Its registered_account_pipeline is the open pipeline of the accounts registered for it. It is not attribution: never report it as sourced, influenced or won, and never add it to totals. This row is trimmed from a real response today:6
Roll it up across the program
Say: “Give me the program summary for this quarter.”Claude calls get_program_report with
time_range (last_30_days, this_quarter, last_quarter, ytd or program_total). It serves the dashboard’s own funnel, one row per event, program_summary.cost_per_meeting, velocity_comparison and coverage, each naming its source. It computes nothing of its own. For the headline number on the dashboard, Claude quotes attribution_summary.total_event_attributed_pipeline from get_workspace_overview.Watch the flow, not just the totals
A total says where things stand. A program needs how much entered each stage: new registrations, first meetings, new opportunities. Before the event, read pace from get_event_detailsgoal.pace. After it, compare the per-event rows of get_program_report period over period. When an event’s meetings never become opportunities, the room or the qualification was wrong: say so before the next one is planned.
Say it in people and deals
Percentages alone don’t decide budget. Translate the served numbers into a sentence a leader can act on:This dinner cost about P. At this rate, one a month is a program.Use only figures heyBTW served, each with its source and window.
Keep the record whole
Results are only as good as the record behind them: every invite recorded from every channel (Fill the room), every yes and no on the roster (Record who came), who came and who met whom (The morning after), and follow-ups found in the CRM recorded with record_observationfollowed_up. get_data_health names what is still missing.
Pair it with your tools
What heyBTW will and won’t do
- It never changes a task because the CRM shows a touch or a nudge went out. Only the owner’s completion closes a task.
- It never sends a nudge and never writes to your CRM.
- Every touch is inferred from logged CRM activity. Claude says what the CRM shows, not that someone was contacted.
- A null funnel count is unknown, never zero.