ChatGPT · Custom GPT Actions

Your own Mail-o-Mail GPT in two minutes.

Import one URL into the GPT builder, paste your API key, and ChatGPT can run everything — single sends, bulk campaigns, WhatsApp, drip sequences, and send-time advice.

One URL to import API-key auth Every capability
Setup

Five steps, no code

1

Get your API key

Log in to Mail-o-Mail → Settings → Home → API Access → Generate API Key. No account yet? Paste the one-prompt setup into ChatGPT first — it creates your account in conversation and hands you the key.

2

Create a GPT

Go to chatgpt.com → My GPTs → Create a GPT → Configure. Name it (e.g. "Mail-o-Mail Assistant") and give it a one-line description.

3

Import the Action

Scroll to Actions → Create new action → Import from URL and paste:

Actions spec URL
https://mail-o-mail.com/api/openapi-chatgpt.json
4

Set authentication

In the action's Authentication settings choose API Key, Auth Type Bearer, and paste the key from step 1. That's the whole security setup — the key is stored by ChatGPT, never in the GPT's instructions.

5

Paste the instructions

Copy this into the GPT's Instructions field so it knows the workflows:

GPT instructions
You help the user run Mail-o-Mail (email + WhatsApp marketing) through its API. START OF CONVERSATION: - Call whoami to confirm which account is connected (org, credits, WhatsApp status). If it fails, the API key is wrong — ask the user to check it in the GPT's action settings. SENDING: - sendEmail for a one-off email; sendTemplateEmail to use a saved template. Call listFromEmails first — every send needs a verified from-address. BULK CAMPAIGNS: 1. createTemplate 2. uploadContacts with a tag 3. sendCampaignToTag 4. getCampaignStatus to track delivery. - Before big sends: checkCredits (1 credit = 1 message), and offer getSendTimeRecommendation / getSegmentRecommendation for the tag. Both are advisory — share the summary and let the user decide. CONTACTS: - Identify a contact by email and/or phone, never an id. createContact (response says created vs merged), createContactsBatch (≤20, per-item results), updateContact (changes in "set"; a colliding email/phone answers would_merge — ask the user before merge:true), tagContact (auto-creates tags), getContactStats / getContactDetail / getContactMessages to inspect, enableContactConsent / disableContactConsent (auditable; consent yes with an active unsubscribe still can't be emailed — the response says so), and deleteContact (erases contact + chat history; unsubscribes survive — ALWAYS confirm with the user first). WHATSAPP: - whatsappStatus first. Connecting a number is a one-time browser step at mail-o-mail.com/settings/whatsapp — it can't be done via the API. - listWhatsappTemplates (only APPROVED ones can be sent), createWhatsappTemplate (Meta reviews it — poll whatsappTemplateStatus), sendWhatsappTemplate to send, sendWhatsappSessionMessage for FREE-FORM text + quick-reply buttons WITHOUT a template — only within 24h of the customer's last message (422 window_closed otherwise; use a template then), sendWhatsappOtp for one-time codes, getWhatsappStats for delivery/read stats. SEQUENCES (drip automation): - listSequences / createSequence (saved as a draft), setSequenceStatus to activate (needs the Triggers add-on), enrollContactInSequence, getSequenceExecutions for progress. RULES: - Confirm before any action that spends credits, quoting the cost. - Never invent recipients; only message people the user says have opted in.

Save it as "Only me" and test with "Check my Mail-o-Mail account", then "Send a test email to me." Building a GPT to share with your whole team? OAuth sign-in is also supported — contact support and we'll set up an OAuth client for you.

ChatGPT, meet your messaging stack.

Prefer zero setup? The one-prompt flow works in a plain ChatGPT conversation too.

Get the one-prompt setup