What you get
In the two weeks before an event, Claude tells you where the collab stands against its RSVP target, who is worth inviting and why, and who on your team or which partner should ask them. You decide. Claude saves the people you keep as a List, sends a Luma invite only after you confirm it, and records the invites you sent yourself so the funnel counts them.Before you start
- The collab exists in heyBTW with an event date. See Record who registered and who came.
- The collab has an RSVP target, or you are ready to give one.
- For a Luma send: Luma is connected in heyBTW with a Luma Plus key. See Connect.
Where people come from
Start with the people closest to the room, and widen only as far as the gap requires.
When you bring people in, include their own city (
location) and the teammate who knows them (known_by), so the invite can come from that person. location_scope: "local" on get_invite_recommendations keeps accounts with someone near the event city.
Read the facts as facts:
- Invited several times, never registered. A reason to stop spending invites on them.
- Known by a teammate. The strongest invite is a personal one from that teammate.
- Attended before in this city. Likely to come again.
Steps
1
Start the sprint
Say: “Run the invite sprint for the SF Tech Week Open House.”Claude runs the
invite_sprint prompt. It applies only when goal.clock.event_window is sprint (14 to 8 days out) or event_week (the last 7 days and the event day). Outside those windows Claude says the window and stops. Without an event name it lists your upcoming collabs and asks which one.2
Read the pace against the RSVP goal
Claude calls get_event_details and reads No target? Claude asks you for a number, sets only the number you state with update_collab, and reads the goal again.
goal as served: goal.targets.rsvp, goal.actuals.rsvp, goal.gap.rsvp, goal.clock.days_to_event and goal.pace.rsvp.pace_status with its reason. It never computes a gap, a rate or a day count itself. This sample is trimmed from a real response today:3
Say who the room is for
Say: “This room is for revenue and marketing leaders at mid-market B2B companies, director and above, near San Francisco. No current customers.”Claude previews save_target_spec at
scope: "collab", shows you what it resolved, and saves only on your confirm. The spec is membership criteria. heyBTW grades no one from it and runs no search. Its search_brief is text you can take to your own tools.The target spec is evolving. This step will be revised.
4
Read who owes what, then the candidates
Claude calls get_abm_plan for each owner’s accounts and whitespace, and get_due_tasks so it never proposes an ask that is already a task. Then it calls get_invite_recommendations. Rows are accounts with their
reasons, each with a code and a basis. People carry known_by, invite_history and event_history. Someone invited several times who never came is a reason to stop spending on them.5
Check a list you pulled elsewhere
If you use a prospecting tool or a CRM in Claude, you can bring its list here. Say: “Before I invite these 200 people, what does heyBTW already know about them?”Claude calls check_people with up to 500
{email} entries. Each row comes back with identity, event_history, invite_history and known_by, and carry names the CRM check to run in your own connector. Facts only, never a verdict.6
Bring in people heyBTW does not hold yet
Say: “Import these contacts from our CRM so I can put them on a list.”Claude calls import_people with
action: "preview", shows row_outcomes, then confirms with the import_token. Pass known_by when you say who on the team knows someone. The response’s member_emails goes to save_list unchanged. Imported people are not sign-ups.7
Propose the asks, then save the list
Claude proposes, in order: personal invites routed to the teammate in
known_by, partner seat asks, people to dig out of your CRM, and last, a Luma blast for only what is left. You accept each ask. A teammate’s or partner’s ask becomes one save_task per ask.Say: “Save the people I kept as SF Open House, personal invites.” Claude calls save_list with name, member_emails and a fresh client_request_id. People the workspace holds no record of come back in rejected_refs. save_list never sends.8
Door 1: send a Luma invite
Say: “Send that list to the Luma event.”Claude calls activate_list
action: "events" and asks you which Luma event, even when only one is listed. It calls action: "preview" with that target_event_id and reads you eligible_count, excluded_by_reason, provenance_composition, invite_log and every note word for word. Only after your explicit go does it call action: "confirm" with a fresh client_request_id. Sends above 2,500 also need typed_count.9
Door 2: record invites you sent yourself
Say: “I emailed everyone on that list yesterday at 9am. Record it.”Claude calls activate_list with
destination_type: "external", the list_id, target_channel_id (the collab), and optionally invited_channel (personal_email, sequence, linkedin, partner or other) and invited_at. It previews, shows you the counts, and confirms only after you say you sent them. Nothing is sent.For a handful of one-off invites, Claude records each with record_observation as an invited fact with at, channel and source. Never from a draft, and never for an invite activate_list sent.10
Watch the pace
Say: “Where are we against the goal now?” Claude reads
goal again from get_event_details. For a list’s results, activate_list action: "funnel" returns one entry per activation, each naming its own event. Claude reports them separately.When people answer
- Yes. Put them on the roster without sending them to a landing page: say “Maya and Sam said yes, add them to the dinner” and Claude records them with record_signups. See Record who came.
- Yes, but I can’t make it. A warm lead, not a loss. Claude records them as declined, adds a record_observation note on what they said, and, if you agree, a save_task to book a meeting.
- No reply. Leave them. The funnel counts them as no response.
Pair it with your tools
heyBTW tells you who you already know and keeps the count. Your own tools find new people and send the invites.What heyBTW will and won’t do
- It reads first, proposes in the conversation, and writes only what you accept, one call per ask.
- It sends nothing except a Luma invite you confirm. Personal invites go out through your own mail, sequence or chat connector.
- It ranks no one. Order in get_invite_recommendations is stated in
metadata.orderingand is nothing more. - A mass send is recorded as a count, not per person:
invite_logdefaults tocountabove 2,500 recipients.