The External Contacts directory (the CRM-style section at the bottom of /dashboard/roster) is fully scriptable via SMS too. The agent can search, add, update, and remove contacts.
Searching
- "Who's the production manager at the Wiltern?"
- "Find Sarah at Live Nation"
- "List all my promoter contacts"
- "Who's the booker at Brooklyn Steel?"
- "Show me contacts in PR"
The agent searches by name, organization, role substring, or category. Returns up to 50 matching contacts with phone, email, organization, role, notes.
Adding
- "Save Sarah at Live Nation, 555-1234, sarah@livenation.com as a promoter"
- "Add the Wiltern's production manager: Jamie, 213-555-0100, jamie@wiltern.com"
- "Save Jamie at the Wiltern, I'll get her number later"
The agent extracts:
- Name, organization, role, phone, email, notes
- Category — best fit from {venue, promoter, agent, pr, label, manager, vendor, other}
Adding the same person twice doesn't create a duplicate — it updates the existing row.
Updating
- "Change Sarah's email to sarah.j@livenation.com"
- "Update the Wiltern PM's notes: prefers texts after 10am"
- "Set Jamie's category to vendor"
You need to give the agent enough to identify which contact — usually a name + organization works.
Removing
- "Remove the contact for Jamie at the Wiltern"
- "Delete Sarah Jones from the directory"
Removes the tenant_contacts row only — the underlying person record stays (in case they have messages, roster membership, etc.).
Permissions
- Read (search_contacts): any roster member can read the directory. No permission check.
- Write (add/update/remove): admin / Full Access only. Non-admins get a refusal.
Auto-population from emails
Even if you never explicitly add a contact via SMS or dashboard, BandBrain auto-extracts contacts from inbound emails. When a promoter emails your BandBrain inbox, their signature gets parsed and a contact is added (name, org, role, phone, email if found).
So your directory fills up passively as people email you. See Email channel.