Email and MessagesWhatsApp, Telegram and SMS

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:

ChannelSenderYour account
WhatsAppMeta Cloud APIyour own WhatsApp Business account on Meta
TelegramTelegram botyour own bot
SMSTwilioyour 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:

  1. Document: send this one document on WhatsApp.
  2. Client: this client prefers Telegram.
  3. 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

1

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.

2

Open Settings > Integrations

Choose the business first. Pick WhatsApp, Telegram or SMS and enter the credentials the provider gives you.

3

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.

4

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
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

CodeWhen
validation_failedA required credential is missing or malformed.
connection_failedThe test call to the provider failed when saving or verifying.
upstream_errorThe provider failed while sending a message.
confirmation_requiredA send without "confirm": true from a draft_only key or token.
permission_deniedYour role lacks the permission for the action.

Permissions

ActionPermission key
Connect, change or remove a channelsenders.manage
Send a document or reminder on any channeldocuments.send
Add a channel step to a reminder sequencereminders.manage
Edit the message templates of a channeltemplates.manage

By default only Owner and Admin can connect channels. See Roles and permissions.