Email and Messages
WhatsApp, Telegram and SMS
Send documents and reminders on WhatsApp, Telegram or SMS through your own accounts, alongside email, with the same previews and logs.
Coming April 2027
This feature ships in April 2027. This page describes how it will work; details can change before release.
Some clients answer a message long before they open an email. WhatsApp, Telegram and SMS let you send documents and reminder steps on the channel your client actually reads. You connect your own WhatsApp Business (Meta Cloud API), Telegram bot or Twilio SMS account, and Free Invoice Automation sends through it, so messages come from you and are billed by your provider to your account.
How it works
Every way of delivering a message is a sender in one registry. Email has two senders at launch, platform email and your own SMTP. These channels add three more:
| Channel | Sender | Your account |
|---|---|---|
| Meta Cloud API | your own WhatsApp Business account on Meta | |
| Telegram | Telegram bot | your own bot |
| SMS | Twilio | your own Twilio account |
They arrive in this order: WhatsApp first, then Telegram, then SMS. Each one is a single new sender in the registry, so documents, reminders, previews, permissions and logs work exactly as they do for email. Nothing else about how you invoice changes.
What stays the same as email
- Preview before sending. The send preview shows the message for the chosen channel before anything goes out.
- One send per event. Every send is unique per document, event and channel. A retry never sends the same message twice on the same channel.
- Logged. Each send is recorded in the message log with the channel, sender, recipient and status (
queued,sent,failed). - Templates. Each channel uses message templates for its event and language. Channels without a subject line use only the body.
- Drafts first. Integrations, MCP clients and the AI agent create drafts; a person confirms the send unless auto-send is turned on for that key or automation.
The platform email allowance does not apply
The monthly platform email allowance (20 on Free, 100 on Team) counts only emails sent through platform email. Messages on WhatsApp, Telegram and SMS go through your own provider account, so they never use that allowance. Your provider's own pricing and limits apply.
Choosing the channel
The channel is a setting you can set at three levels. The most specific one wins:
- Document: send this one document on WhatsApp.
- Client: this client prefers Telegram.
- Business: the default channel for the business (email unless you change it).
Reminder sequences pick a channel per step, so one sequence can email before the due date and send an SMS a week after it.
Connect a channel in the web app
Create the account at the provider
Set up your WhatsApp Business account on Meta, create a Telegram bot, or open a Twilio account with an SMS number. You own this account and its billing.
Open Settings > Integrations
Choose the business first. Pick WhatsApp, Telegram or SMS and enter the credentials the provider gives you.
Save and test
We check the connection when you save. The credentials are sealed and write-only: you can replace them later, but nobody can read them back.
Choose where to use it
Set the channel on the business, a client or a single document, or add a step on that channel to a reminder sequence.
Through the API and MCP
Messaging channels are sender connections, created with Create a connection using kind: "sender" and the provider key of the channel: meta_whatsapp, telegram or twilio_sms. The fields come from each sender's connection schema, listed on the endpoint page.
curl -X POST "https://api.freeinvoiceautomation.com/v1/connections" \
-H "Authorization: Bearer $FIA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: telegram-acme-studio" \
-d '{
"business_id": "0193f2a1-7c4e-7b9a-9f10-3c2d1e0a4b51",
"kind": "sender",
"provider": "telegram",
"label": "Acme Studio bot"
}'Once a channel is connected, sending is the same call as email. Send a document and Send a reminder use the channel resolved for that document, and List messages shows every send on every channel.
Over MCP, your assistant uses preview_send, send_document and send_reminder exactly as for email. Connecting a channel is not an MCP tool, because it involves your provider credentials.
Rules and edge cases
- Your accounts, your costs. We never send WhatsApp, Telegram or SMS messages from a shared account of ours. Fees for messages are charged by your provider to you; we take nothing.
- Your provider's rules apply. Messaging providers have their own rules about who you may message and when. Follow them for your account.
- Per business. A sender connection belongs to one business, like an SMTP connection.
- Opt-out still applies. A client who opted out of reminders gets no reminders on any channel.
- Failures are visible. A failed send is logged with its error, and the connection shows as failing after repeated problems, so you can fix the credentials and send again.
- Inbound messages come later. Replies that act on documents (for example a "PAID" reply on WhatsApp or commands to a Telegram bot) are planned to enter through the same sender registry. The WhatsApp and Telegram bots are on the later roadmap, not part of this release.
Errors
| Code | When |
|---|---|
validation_failed | A required credential is missing or malformed. |
connection_failed | The test call to the provider failed when saving or verifying. |
upstream_error | The provider failed while sending a message. |
confirmation_required | A send without "confirm": true from a draft_only key or token. |
permission_denied | Your role lacks the permission for the action. |
Permissions
| Action | Permission key |
|---|---|
| Connect, change or remove a channel | senders.manage |
| Send a document or reminder on any channel | documents.send |
| Add a channel step to a reminder sequence | reminders.manage |
| Edit the message templates of a channel | templates.manage |
By default only Owner and Admin can connect channels. See Roles and permissions.