Integration · Communication
Connect Claude & ChatGPT to Switchboard
Ask your AI about your supporters, broadcasts and contributions in Switchboard. It can look up a phone number and its conversation, list recent donations and form responses, and check how a broadcast was delivered. It can also add supporters, tag them with labels, draft and schedule broadcasts and send texts, with your approval if you want it.
Free plan, no credit card. Takes about a minute.
Try asking
“Did +12345556789 opt out, and what did we last text them?”
The AI reads the supporter phone with its opt-out status and lists the text conversation with that number.
“Draft a broadcast to the Volunteers list about Saturday's canvass.”
It creates a draft broadcast with a title, message text and audience. Nothing is sent until you send or schedule it.
“Send a test of that broadcast to my phone first.”
It sends a sample copy of the broadcast to the phone numbers you give.
What your AI can do
Supporters
Add, look up and list supporter phones and emails, read a text conversation and add or remove labels.
Broadcasts and email blasts
Draft, update, test, schedule, send and pause text broadcasts, check delivery, and read email blasts.
Contributions and forms
List and read contributions and recurring contributions, issue refunds, and read forms and their responses.
“Schedule it for Friday at 16:00 UTC.”
It schedules the broadcast, which then texts its whole audience at that time.
“How many contributions came in this week, and which are recurring?”
It lists succeeded contributions filtered by date, and your active recurring contributions.
“Tag everyone who answered the event form with the label RSVP.”
It lists the form responses and adds the label to each supporter's phone number.
143 tools for Switchboard
These tools are switched on when you connect. You can switch any of them off, or require your approval before it runs.
archive_canned_responseVisible to othersArchive a canned response (canned response id). Has effects visible outside this system. API summary: Archive Canned Response.archive_formVisible to othersArchive a form (form id). Has effects visible outside this system. API summary: Archive Form.archive_phone_listVisible to othersArchive a phone list (phone list id). Has effects visible outside this system. API summary: Archive Phone List.archive_shortlink_domainVisible to othersArchive a shortlink domain (shortlink domain id). Has effects visible outside this system. API summary: Archive Shortlink Domain.cancel_actblue_webhook_requestDeletesCancel a actblue webhook request (request id). Destructive action; may require approval. API summary: Cancel ActBlue Webhook Request.cancel_recurring_contributionDeletesCancel a recurring contribution (recurring contribution id). Destructive action; may require approval. API summary: Cancel Recurring Contribution.close_formVisible to othersClose a form (form id). Has effects visible outside this system. API summary: Close Form.create_actblue_webhook_requestDeletesCreate a new actblue webhook request. Required: entity id or requester email. Search actblue webhook requests first to avoid duplicates. Destructive action; may require approval. API summary: Create ActBlue Webhook Request.create_actblue_webhook_request_credentialDeletesCreate a new credential for a actblue webhook request. Destructive action; may require approval. API summary: Create New ActBlue Webhook Credentials.create_broadcastVisible to othersCreate a draft text broadcast with a `title`, `message_text`, `audience` (a phone list or saved search) and optional media. Nothing is sent until you send or schedule it.create_broadcast_resumeVisible to othersCreate a new resume for a broadcast. Has effects visible outside this system. API summary: Resume Broadcast.create_broadcast_unscheduleVisible to othersCreate a new unschedule for a broadcast. Has effects visible outside this system. API summary: Unschedule Broadcast.create_bulk_update_labelVisible to othersCreate a new bulk update label. Required: upload id. Has effects visible outside this system. API summary: Bulk Update Phone Labels.create_canned_responseChanges dataCreate a new canned response. Required: name or text. Search canned responses first to avoid duplicates. API summary: Create Canned Response.create_documentChanges dataCreate a new document. Required: purpose or content type. API summary: Create Upload.create_emailVisible to othersAdd a supporter email address (`email_address`) with optional name, phone, address, custom fields and labels.create_email_listVisible to othersEmail a message. Has effects visible outside this system. API summary: Create Email List.create_formChanges dataCreate a new form. Required: name or form type. Search forms first to avoid duplicates. API summary: Create Form.create_form_css_templateChanges dataCreate a new form css template. Required: name. Search form css templates first to avoid duplicates. API summary: Create Form CSS Template.create_labelChanges dataCreate a new label. Required: name. Search labels first to avoid duplicates. API summary: Create Label.create_phoneChanges dataAdd a supporter phone number (`phone_number`, E.164) with optional name, email, address, custom fields and labels.create_phone_listChanges dataCreate a new phone list. Required: fields to headers. Search phone lists first to avoid duplicates. API summary: Create Phone List.create_saved_searchChanges dataCreate a new saved search. Required: audience type or criteria. Search saved searches first to avoid duplicates. API summary: Create Saved Search.create_saved_search_convert_to_listChanges dataCreate a new convert to list for a saved search.create_uploaded_mediumChanges dataCreate a new uploaded medium. Required: source url. Search uploaded media first to avoid duplicates. API summary: Upload Media.create_webhookDeletesCreate a new webhook. Required: destination url or version. Search webhooks first to avoid duplicates. Destructive action; may require approval. API summary: Create Webhook Endpoint.delete_canned_responseDeletesPermanently delete a canned response by canned response id. Destructive action; may require approval. API summary: Delete Canned Response.export_blastsVisible to othersExport messages. Has effects visible outside this system. API summary: Export Blasts.export_broadcastsChanges dataExport broadcasts.export_email_blast_messagesVisible to othersExport messages. Has effects visible outside this system. API summary: Export Email Blast Messages.export_email_listVisible to othersExport messages. Has effects visible outside this system. API summary: Export Email List.export_emailsChanges dataExport messages. API summary: Export Emails.export_inboxesChanges dataExport inboxes.export_messagesVisible to othersExport messages. Has effects visible outside this system. API summary: Export Broadcast Phone Messages.export_messages_unsubscribesChanges dataExport messages. API summary: Export Unsubscribes.export_phone_listsChanges dataExport phone lists.export_phonesChanges dataExport phones.export_phones_opt_outsChanges dataExport phones. API summary: Export Opt Outs.export_saved_searchesChanges dataExport saved searches.get_actblue_webhook_requestGet one actblue webhook request by request id. API summary: Get ActBlue Webhook Request.get_broadcastGet one broadcast by `broadcast_id`, including audience, message text, status and schedule.get_broadcast_previewGet one broadcast by broadcast id. API summary: Preview Broadcast.get_canned_responseGet one canned response by canned response id. API summary: Get Canned Response.get_companyGet one company by company id. API summary: Get Organization.get_contributionGet one contribution by its id, including amount, donor and status.get_contributions_disputeGet one contributions dispute by dispute id. API summary: Get Contributions Dispute.get_contributions_payoutGet one contributions payout by payout id. API summary: Get Payout.get_count_on_me_contributionGet one count on me contribution by contribution id. API summary: Get Count On Me Contribution.get_current_accountGet the Switchboard account and organizations your credentials belong to. Use to find an `organization_id` if you have access to several.get_customerGet one customer by customer id. API summary: Get Messaging Client.get_email_blastGet one email blast by `blast_id`, optionally with its HTML or text content.get_email_listGet one message by message id. API summary: Get Email List.get_email_senderGet one message by message id. API summary: Get Email Sender.get_formGet one form by form id. API summary: Get Form.get_form_css_templateGet one form css template by template id. API summary: Get Form CSS Template.get_form_responseGet one form response by response id. API summary: Get Form Response.get_invoiceGet one invoice by invoice id. API summary: Get Invoice.get_keywordGet one keyword by keyword id. API summary: Get Keyword.get_labelGet one label by label id. API summary: Get Label.get_on_me_contributionGet one on me contribution. Results are paginated. API summary: List Count On Me Contributions.get_paymentGet one payment by payment id. API summary: Get Payment Method.get_phoneGet one supporter phone by E.164 `phone_number` (e.g. +12345556789), with name, labels and opt-out status.get_phone_listGet one phone list by `phone_list_id`, including its size and import status.get_projectGet one project by project id. API summary: Get Job.get_recurring_contributionGet one recurring contribution by recurring contribution id. API summary: Get Recurring Contribution.get_refund_get_refund_v1_contribution_refunds_refund_id_getGet one refund by refund id. API summary: Get Refund.get_saved_searchGet one saved search by saved search id. API summary: Get Saved Search.get_shortlink_domainGet one shortlink domain by shortlink domain id. API summary: Get Shortlink Domain.get_uploaded_mediumGet one uploaded medium by uploaded media id. API summary: Get Uploaded Media.get_webhookGet one webhook by webhook id. API summary: Get Webhook Endpoint.list_broadcast_messagesList the individual messages a broadcast sent, with delivery status, by `broadcast_id`.list_broadcastsList text broadcasts, optionally filtered by title, description or status; page with `cursor`.list_company_billing_settingsList billing settings for a company. API summary: Get Organization Billing Settings.list_contributionsList contributions (donations); `status` defaults to succeeded (pass all for every status) and `filter` narrows by source, provider or date.list_contributions_payout_contributionsList contributions for a contributions payout. Results are paginated. API summary: List Payout Contributions.list_email_blastsVisible to othersList email blasts (sent or draft email campaigns), optionally filtered by title or status; page with `cursor`.list_email_listsVisible to othersEmail a message. Has effects visible outside this system. Results are paginated. API summary: List Email Lists.list_email_sendersVisible to othersEmail a message. Has effects visible outside this system. Results are paginated. API summary: List Email Senders.list_emailsList supporter email addresses, optionally filtered by created or updated time; page with `cursor`.list_form_performancesList performances for a form. API summary: Get Form Performance.list_form_responsesList form responses, optionally filtered by `form_id` or date; page with `cursor`.list_formsList your Switchboard forms, optionally filtered by name, slug or status.list_labelsList the labels used to tag phones and emails, optionally filtered by name.list_ngpvan_keysList ngpvan keys. Results are paginated.list_paymentsList payments. Results are paginated. API summary: List Payment Methods.list_phone_hash_suppressionsList phone hash suppressions. Optional filters: organization id. API summary: Get Hash Suppression.list_phone_listsList phone lists, optionally filtered by name or description; page with `cursor`.list_phone_messagesList the text conversation with one supporter by `phone_number`; optionally filter by sent time.list_phonesList supporter phone numbers, optionally narrowed with a `filter` expression (e.g. by created_at); page with `cursor`.list_projectsList projects. Optional filters: type. Results are paginated. API summary: List Jobs.list_recurring_contributionsList recurring contributions, optionally filtered by status (active or cancelled).list_refundsSearch refunds by filter. Use this to find existing refunds before creating a new refund. Results are paginated. API summary: List Refunds.pause_broadcastVisible to othersPause a broadcast that is currently sending, by `broadcast_id`.pay_invoiceMoves moneyPay a invoice. Financial or irreversible action; may require approval. API summary: Pay Invoices.publish_formVisible to othersPublish a form (form id). Has effects visible outside this system. API summary: Publish Form.refund_contributionMoves moneyRefund a contribution by `contribution_id` with a `reason`; omit `amount_in_cents` to refund the full remaining amount. Money is returned to the donor and this cannot be undone.restore_canned_responseChanges dataUnarchive a canned response (canned response id). API summary: Unarchive Canned Response.restore_phone_listChanges dataUnarchive a phone list (phone list id). API summary: Unarchive Phone List.restore_shortlink_domainChanges dataUnarchive a shortlink domain (shortlink domain id). API summary: Unarchive Shortlink Domain.schedule_broadcastVisible to othersSchedule a broadcast to send automatically at `scheduled_time` (UTC, in the future). It will text its whole audience at that time.search_actblue_webhook_requestsSearch actblue webhook requests by filter. Use this to find existing actblue webhook requests before creating a new actblue webhook request. Results are paginated. API summary: List ActBlue Webhook Requests.search_canned_responsesSearch canned responses by filter. Use this to find existing canned responses before creating a new canned response. Results are paginated. API summary: List Canned Responses.search_companiesSearch companies by filter. Use this to find existing companies before creating a new company. Results are paginated. API summary: List Organizations.search_contributions_disputesSearch contributions disputes by filter. Use this to find existing contributions disputes before creating a new contributions dispute. Results are paginated. API summary: List Contributions Disputes.search_contributions_payoutsSearch contributions payouts by filter. Use this to find existing contributions payouts before creating a new contributions payout. Results are paginated. API summary: List Payouts.search_customersSearch customers by filter. Use this to find existing customers before creating a new customer. Results are paginated. API summary: List Messaging Clients.search_form_css_templatesSearch form css templates by filter. Use this to find existing form css templates before creating a new form css template. Results are paginated. API summary: List Form CSS Templates.search_invoicesSearch invoices by filter. Use this to find existing invoices before creating a new invoice. Results are paginated. API summary: List Invoices.search_keywordsSearch keywords by filter. Use this to find existing keywords before creating a new keyword. Results are paginated. API summary: List Keywords.search_saved_searchesSearch saved searches by filter. Use this to find existing saved searches before creating a new saved search. Results are paginated. API summary: List Saved Searches.search_shortlink_domainsSearch shortlink domains by filter. Use this to find existing shortlink domains before creating a new shortlink domain. Results are paginated. API summary: List Shortlink Domains.search_sql_mirror_datasetsSearch sql mirror datasets by filter. Use this to find existing sql mirror datasets before creating a new sql mirror dataset. Results are paginated. API summary: List SQL Mirror Datasets.search_uploaded_mediaSearch uploaded media by filter. Use this to find existing uploaded media before creating a new uploaded medium. Results are paginated. API summary: List Uploaded Media.search_webhooksSearch webhooks by filter. Use this to find existing webhooks before creating a new webhook. Results are paginated. API summary: List Webhook Endpoints.send_broadcastVisible to othersSend a broadcast to its whole audience now, by `broadcast_id`. Texts go out to every recipient and cannot be recalled.send_broadcast_sampleVisible to othersSend a test copy of a broadcast to a few `phone_numbers` (E.164) before sending it for real.send_message_messagesVisible to othersEmail a message (blast id). Has effects visible outside this system. Results are paginated. API summary: List Email Blast Messages.send_text_messageVisible to othersSend a text message (`text`, optional `media_id` for MMS) to one supporter's `phone_number`. The message is delivered immediately and cannot be recalled.submit_formVisible to othersDuplicate a form (form id). Has effects visible outside this system. API summary: Duplicate Form.submit_form_css_templateVisible to othersDuplicate a form css template (template id). Has effects visible outside this system. API summary: Duplicate Form CSS Template.submit_form_unpublishVisible to othersUnpublish a form (form id). Has effects visible outside this system. API summary: Unpublish Form.submit_saved_searchVisible to othersRefresh a saved search (saved search id). Has effects visible outside this system.update_broadcastVisible to othersUpdate a draft broadcast's title, message text, audience, media or scheduled time by `broadcast_id`.update_broadcast_pause_thresholdVisible to othersUpdate an existing broadcast identified by broadcast id. Has effects visible outside this system. API summary: Set Pause Threshold.update_canned_responseChanges dataUpdate an existing canned response identified by canned response id. Only the fields you pass are changed. API summary: Update Canned Response.update_company_billing_settingsVisible to othersUpdate an existing billing setting identified by organization id. Only the fields you pass are changed. Has effects visible outside this system. API summary: Update Organization Billing Settings.update_customerChanges dataUpdate an existing customer identified by customer id. Only the fields you pass are changed. API summary: Update Messaging Client.update_formChanges dataUpdate an existing form identified by form id. Only the fields you pass are changed. API summary: Update Form.update_form_css_templateChanges dataUpdate an existing form css template identified by template id. Only the fields you pass are changed. API summary: Update Form CSS Template.update_labelChanges dataUpdate an existing label identified by label id. Only the fields you pass are changed. API summary: Update Label.update_message_labelsVisible to othersUpdate an existing message identified by email list id. Has effects visible outside this system. API summary: Update Email List Labels.update_messages_labelsChanges dataUpdate an existing message. API summary: Update Email Labels.update_phone_hash_suppressionsVisible to othersUpdate an existing phone hash suppression. Only the fields you pass are changed. Has effects visible outside this system. API summary: Update Hash Suppression.update_phone_labelsChanges dataAdd or remove labels on one phone number: `action` is add or remove, with `label_names` or `label_ids`.update_phone_listChanges dataUpdate a phone list's `name`, `description` or `acquisition_cost` by `phone_list_id`.update_phone_list_labelsChanges dataUpdate an existing phone list identified by phone list id. API summary: Update Phone List Labels.update_recurring_contributionChanges dataUpdate an existing recurring contribution identified by recurring contribution id. Only the fields you pass are changed. API summary: Update Recurring Contribution.update_saved_searchChanges dataUpdate an existing saved search identified by saved search id. Only the fields you pass are changed. API summary: Update Saved Search.update_shortlink_domain_primaryChanges dataUpdate an existing shortlink domain identified by shortlink domain id. API summary: Set Primary Shortlink Domain.update_webhookDeletesUpdate an existing webhook identified by webhook id. Only the fields you pass are changed. Destructive action; may require approval. API summary: Update Webhook Endpoint.upload_message_from_ngpvanVisible to othersImport a message. Has effects visible outside this system. API summary: Create Email List from NGPVAN Saved List.upload_phone_hash_suppression_listChanges dataImport a phone hash suppression. API summary: Import Hash Suppression List.upload_phone_list_from_ngpvanChanges dataImport a phone list. API summary: Create Phone List from NGPVAN Saved List.
Set up in three steps
- 1
Pick the app
Create a free HeyMyApps account and choose Switchboard from the app list.
- 2
Paste your key
Enter your Switchboard Account ID and Secret Key. In Switchboard open Organization Settings → API (or Account Settings → API for a key covering several organizations) and generate API credentials. The Secret Key is shown only once, so copy it right away.
- 3
Add the link to your AI
You get a personal MCP link. Add it to Claude, ChatGPT or Cursor:
- Click your name, then Settings › Connectors › Add custom connector.
- Paste your link as the Remote MCP server URL.
- Switch it on from the + menu in a chat.
Questions
What can the AI do in Switchboard?
The AI can read supporter phones and emails, phone lists, labels, text conversations, broadcasts, email blasts, forms, form responses and contributions. It can add supporters, update labels and phone lists, draft, schedule, send and pause broadcasts, send single texts and refund contributions.
Does the AI see my Switchboard credentials?
No. Your Switchboard credentials are encrypted at rest and never shown to the AI. After you save them, they are not shown again, not even to you. The AI only sees the results of the tools it calls.
Can I control what the AI is allowed to do?
Yes. You choose which tools are switched on, so you can start with lookups only. Sending texts and broadcasts reaches real people and cannot be recalled, and a refund returns money to the donor. These actions can require your approval before they run. Every tool call is logged.
Does it work with ChatGPT?
Yes. In ChatGPT go to Settings › Apps & Connectors › Advanced and turn on Developer mode, then add your HeyMyApps link. Developer mode needs a paid ChatGPT plan: Plus, Pro, Business or Enterprise. The same link also works in Claude (Settings › Connectors › Add custom connector), Cursor and other MCP clients.
What does it cost?
HeyMyApps has a free plan with no credit card required. Paid plans bill per completed task. You also need your own Switchboard account.
Will the AI text my supporters without asking?
Only if you let it. Creating a broadcast makes a draft, and nothing goes out until it is sent or scheduled. You can leave the send tools off, or turn on approval so every send_broadcast, schedule_broadcast and send_text_message call waits for you.
Let your AI work in Switchboard today.
Start free. Your key stays encrypted, and you decide what the AI may do.
Connect Switchboard freeHeyMyApps is not affiliated with Switchboard. Product names are trademarks of their owners.






