When to use it
- “I have the Eventbrite export, 400 rows. Get it in.”
- “The guest list has our custom questions, keep those.”
- “Give me a link so I can upload the CSV myself.”
Parameters
Nothing else is sent. Never pass the file or its rows.
Workflow
1
Make the link
Call with
channel_id. Each call issues a new link.2
Give the user the link
They open it in a browser where they are signed in to heyBTW as the person whose credential made the call. Anyone else who opens it is refused, and it opens once. It works for 30 minutes.
3
The user imports in heyBTW
The link opens the collab’s attendee table with heyBTW’s own importer open. They drop the CSV or TSV file, confirm the column mapping (registration questions map there) and import. The importer’s rules apply unchanged: column mapping, status rules, duplicates, one import at a time per collab. Opened from this link, Enrich on import starts unchecked.
4
Read the roster back
When the user says the import is done, read it with get_event_details (
attendance.total) or list_events (roster_count). Do not also send the rows with record_signups.client_request_id: a retry simply issues another link.
Response
The shape below is from the contract and the code (tools/create_import_link.py, import-link-contract.json). It was not called live, because each call issues a real link.
Rules the agent must follow
- Never send the file or its rows to this tool, and never also send them with record_signups after the user imports.
- Tell the user the link opens once, for them only, for 30 minutes.
- Read the roster back from get_event_details or list_events. Never count the file yourself.
- Only the workspace’s own collabs. A partner’s collab, the demo collab or an unknown id returns
entity_not_found.
Errors and gaps
Related
- record_signups, for rows you already hold
- get_event_details, to read the roster back
- list_events
- Playbook: Record who registered and who came