> ## Documentation Index
> Fetch the complete documentation index at: https://heybtw.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Fill the room in the two weeks before

> Pace against the RSVP goal, find who to ask and through whom, save the list, and send or record the invites.

## 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](https://heybtw.com/docs/playbooks/record-who-came.md).
* 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](https://heybtw.com/docs/playbooks/connect-crm-and-event-platform.md).

## Where people come from

Start with the people closest to the room, and widen only as far as the gap requires.

| Source | What it gives | heyBTW tool |
| - | - | - |
| Your own past events | People who attended, who on your team knows them, and their invite history | [get\_invite\_recommendations](https://heybtw.com/docs/tools/get-invite-recommendations.md) |
| Partner overlaps | Accounts a partner shares with your targets | [get\_partner\_overlaps](https://heybtw.com/docs/tools/get-partner-overlaps.md) |
| Your CRM, if it is connected in Claude | Contacts that match the room, and customers or open deals to include or leave out | [import\_people](https://heybtw.com/docs/tools/import-people.md) |
| A prospecting tool or a LinkedIn connections export you have | People who match the room's `search_brief` | [import\_people](https://heybtw.com/docs/tools/import-people.md) |
| Your event platform's followers or calendar | A broad send, sized to what is left | [activate\_list](https://heybtw.com/docs/tools/activate-list.md) (a Luma send, or recorded as external) |

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](https://heybtw.com/docs/tools/get-event-details.md) and reads `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:

```json theme={null}
{
  "clock": { "days_to_event": 6, "event_window": "event_week", "event_tense": "upcoming" },
  "targets": { "rsvp": 150 },
  "actuals": { "rsvp": 61 },
  "gap": { "rsvp": 89 },
  "pace": {
    "rsvp": {
      "pace_status": {
        "value": "at_risk",
        "reason": "Projected 61 RSVPs by the event day, below 112.5 (75% of the target 150)."
      }
    }
  }
}
```

No target? Claude asks you for a number, sets only the number you state with [update\_collab](https://heybtw.com/docs/tools/update-collab.md), and reads the goal again.

**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](https://heybtw.com/docs/tools/save-target-spec.md) 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.

> [!NOTE]
>
> The target spec is evolving. This step will be revised.

**4. Read who owes what, then the candidates**

Claude calls [get\_abm\_plan](https://heybtw.com/docs/tools/get-abm-plan.md) for each owner's accounts and whitespace, and [get\_due\_tasks](https://heybtw.com/docs/tools/get-due-tasks.md) so it never proposes an ask that is already a task. Then it calls [get\_invite\_recommendations](https://heybtw.com/docs/tools/get-invite-recommendations.md). 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](https://heybtw.com/docs/tools/check-people.md) 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](https://heybtw.com/docs/tools/import-people.md) 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](https://heybtw.com/docs/tools/save-task.md) per ask.

Say: "Save the people I kept as SF Open House, personal invites." Claude calls [save\_list](https://heybtw.com/docs/tools/save-list.md) 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](https://heybtw.com/docs/tools/activate-list.md) `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](https://heybtw.com/docs/tools/activate-list.md) 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](https://heybtw.com/docs/tools/record-observation.md) 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](https://heybtw.com/docs/tools/activate-list.md) `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](https://heybtw.com/docs/tools/record-signups.md). See [Record who came](https://heybtw.com/docs/playbooks/record-who-came.md).
* **Yes, but I can't make it.** A warm lead, not a loss. Claude records them as declined, adds a [record\_observation](https://heybtw.com/docs/tools/record-observation.md) note on what they said, and, if you agree, a [save\_task](https://heybtw.com/docs/tools/save-task.md) to book a meeting.
* **No reply.** Leave them. The funnel counts them as no response.

> [!TIP]
>
> Invites that work for executives lead with an offer, not an ask: a dinner around who they are, a peer roundtable, a founder coffee. Name who the room is for, say who else is coming when you can, and make one ask.

## 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.

| Job | Tools you might use | What to ask Claude |
| - | - | - |
| Find new people who fit the room | Apollo, Clay, ZoomInfo, or a LinkedIn Sales Navigator export | "Take the room's search brief to Apollo, find 50 VPs of Marketing near SF, and bring them into heyBTW with their city." |
| Check customers and open deals before inviting | HubSpot, Salesforce or Attio | "Which of these are customers or have open deals in HubSpot, and who owns them? Leave customers out." |
| Fill missing emails or titles | Your enrichment tool, or heyBTW enrichment in the dashboard | "Find work emails for the 12 people without one." |
| Send personal invites | Gmail or Outlook | "Draft a personal invite from Sam to each person she knows, then record the invites in heyBTW once sent." |
| Send a sequence | Apollo, Outreach, Salesloft or HubSpot sequences | "Add this list to our dinner sequence, then record it in heyBTW as a sequence invite." |
| Ask partners for seats | Slack or email | "Message Brightpath in Slack asking for 10 seats from their accounts, and log it as a task." |
| A broad send for what is left | Luma (sent through heyBTW), or your event platform | "Send the remaining list to the Luma event." |

## 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.ordering` and is nothing more.
* A mass send is recorded as a count, not per person: `invite_log` defaults to `count` above 2,500 recipients.

## Related

* [The morning after](https://heybtw.com/docs/playbooks/morning-after.md)
* [get\_invite\_recommendations](https://heybtw.com/docs/tools/get-invite-recommendations.md)
* [activate\_list](https://heybtw.com/docs/tools/activate-list.md)
* [Prompts and resources](https://heybtw.com/docs/mcp/prompts-and-resources.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.