Sending automation

Messages that go out on their own, without an agent typing them one by one: automatic billing reminders, which remind customers of each open invoice at the right moment relative to the due date, and campaigns from a contact list, with a controlled pace and tracking of delivery, reads and replies.

Overview

The Sending automation page is in the side menu, with the subtitle Billing reminders and list campaigns, at a controlled pace. It has two cards:

CardWhat it is forHow it is sent
Billing remindersInvoice reminders sent on their own through the official API: you choose the approved template and when to charge relative to the due date; ChatISP checks the management system every day and sends once per open invoice.Official API with a template approved by Meta, or QR connection with free text under a responsibility notice.
List campaignsBulk sending from a contact list, with controlled pace and tracking. Maintenance notices, announcements, offers, surveys.QR connection (free text) or official API (approved template).

In both cases the messages are sent in the background by the server, at the configured pace, and each message is recorded in the customer's conversation. The page refreshes on its own, so you can follow the progress with it open.

Billing reminders do not depend on any trigger configured in the management system: ChatISP itself decides who receives them by checking open invoices by due date. You do not need to set up sends or special texts in the ERP.


Requirements, permission and plan

Plan Plan feature

Sending automation is included in plans from PREMIUM upward (and is available during the free trial). On a plan without the feature, the page shows the unavailable feature notice with the required plan, and the system does not allow creating campaigns or saving or enabling reminder rules. Existing rules and campaigns are not deleted if the plan changes.

Permission

The page and both functions require the Sending automation permission (on the profiles screen: Creates and tracks billing reminders and bulk messaging campaigns.). If the user is restricted to some connections in the agent record, they can only create rules and campaigns on the numbers they work on. See Connections per agent.

What each feature needs

FeaturePrerequisites
Billing reminders
  • A connected number: through the official API (approved template) or through the QR code (free text, with the risks accepted by the administrator).
  • At least one approved template in that number's business account, without a media header.
  • A management system with search by due date registered and with its financial features enabled. Today billing reminders work with IXC Provedor.
List campaign
  • A connected connection, QR or official API.
  • On the official API, an approved template without a media header.
  • The recipient list (pasted or imported from a file).

Management systems that only allow looking up invoices by CPF, customer code or contract do not offer the search by due date that billing reminders need. They appear in the form marked no search by due date and cannot be selected. If no registered system has this search, the form shows No management system with search by due date. The integration with the management system is configured in Integrations.


How billing reminders work

Each reminder rule is a rule: a number (official API with an approved template, or QR code with free text), a moment relative to the due date and a sending window. You can have several rules at the same time, for example one 3 days before, one on the due date and another 5 days after the due date.

The daily cycle

  1. Scan. At the first moment the rule is inside its window (chosen day of the week and time), ChatISP calculates the target due date for the day (for example, for "3 days before", the invoices due 3 days from now) and queries the management system for open invoices with that due date. The first scan of the day happens at the start of the window; after that the rule rescans the same date every hour while the window is open, to catch invoices issued during the day. Calendar holidays (the national ones turned on and those registered in Flows > Holidays) stay outside the window like an unchecked day, unless the rule has the Holidays chip checked. Days on which the rule did not run (weekend or holiday outside the window, server down) are recovered in the first scan of the next day inside the window, up to 7 days back: pre-due reminders go out while the invoice is still not overdue, and overdue reminders go out on the first checked day. No invoice is charged twice.
  2. Selection. Only invoices with an amount and a copyable payment method (Pix or boleto) are included. Each customer's phone comes from the management system record: the reminder goes to every mobile number on file (one line per number, the WhatsApp field first); a landline only comes in when it is the only number on file. A customer without a phone is recorded as Skipped with the detail no phone on file.
  3. One reminder per invoice. Each invoice receives at most one reminder per rule. If the same invoice shows up again, it is ignored.
  4. Sending. Reminders stay Waiting and go out at the rule's per-minute pace, up to the daily limit, always inside the window.
  5. Check at sending time. Before each send the invoice is checked again: if it was paid in the meantime, the reminder is marked as Skipped (invoice paid before sending) and nothing is sent.

Automatic safeguards

  • Customers in service wait. If the customer has an open conversation on that number, their reminder waits until the conversation is closed, so it does not interrupt the service.
  • 48-hour validity. A reminder that could not go out within 48 hours (customer in service the whole time, window too short, daily limit reached) is discarded as Skipped, with the detail 48 h passed without being able to send.
  • Management system offline. If the query fails, the rule tries again every 15 minutes inside the window, and the reason appears in the list as Last error.
  • Connection or template unavailable. If the number is disconnected or the template is no longer approved, nothing is sent and the rule shows the reason (connection disconnected or template not approved).
  • Account blocked at Meta. If Meta blocks the WhatsApp Business account (for example for lack of a valid payment method), the rule holds the batch and shows sending blocked by Meta. The connection card in Connections explains the reason and leads to the right Meta page. Without this safeguard the API would accept every message and deliver none.
  • Try again. Reminders that failed are not final: the Try again (N) button on the rule row sends every failed reminder back to the queue, and they go out in the next round within the window. Fix the cause first, for example the Pix key.

When saved, the rule is already Enabled. If you want to review it before it starts sending reminders, use Preview for today before saving or disable the rule right after creating it.


Create a billing reminder rule

In the Billing reminders card, click New reminder rule. The form has three numbered sections, the In practice strip and the Preview for today, Cancel and Save buttons.

1. Message

The official API number and the approved template the customer will receive.

FieldWhat it does
Rule nameInternal identification (up to 120 characters). Shown in the list and in the event recorded in the customer's conversation.
ConnectionThe official API number that sends. Disconnected numbers appear marked, but the rule only sends when the number is connected.
TemplateThe number's approved templates, without a media header. Below the selector you see the template type (With copy buttons or Text only), the preview as a WhatsApp bubble and the variable fields.
Fetch templates from MetaRefreshes the account's template list. Useful right after a template is approved.
Manage templates at MetaOpens the business account's template manager, where you create a template and submit it for approval.

If the number has no approved template, the section shows No approved template on this number: Templates are created and approved in the Meta WhatsApp Manager. Create a utility template, preferably of the order details type (with the copy Pix and boleto buttons), then fetch the templates here.

2. When to send

The rule looks at the due date of every open invoice in the management system. Choose one of the three cards:

CardDescription on screenDays field
Before the due dateFriendly reminder for customers still up to date: the invoice is due in a few days.From 1 to 90 days before.
On the due dateNotice on the due date itself, with the code to pay right away.Locked (does not apply).
After the due dateReminder for customers past the due date without paying.From 1 to 90 days after.

Only After the due date has the field Include overdue up to (days). With it, on its first scan the rule also charges invoices that were already overdue by up to that many days before the target date, once each; on the following days it looks only at the exact date again. With zero, the rule charges only the exact due date, and customers already overdue when the rule was created never receive it. Raising the value on a rule that has already scanned repeats that first scan.

The Management system field chooses where the invoices come from: All with search by due date (default) or a specific system. Systems without that search appear disabled with the mark no search by due date.

3. Window and pace

Sends only on the chosen days and hours, within the daily cap.

FieldDefaultRules
Days of the weekMon to FriChips from Sun to Sat. At least one day selected.
HolidaysUncheckedChip next to the days. Unchecked, the rule neither scans nor sends on a calendar holiday (Flows > Holidays) and that day's reminders go out on the next day inside the window. Checked, a holiday counts as a regular day.
From / Until08:00 to 18:00The start must be before the end. Outside this interval the rule neither scans nor sends.
Daily limit500From 1 to 5,000. Maximum reminders from this rule per day.
Pace (per minute)10From 1 to 60 messages per minute.

The In practice strip summarizes the rule in one sentence as you fill it in, for example: In practice: sends for each open invoice 3 day(s) before the due date, Mon, Tue, Wed, Thu, Fri, from 08:00 to 18:00, at most 500 per day. With no day selected, it warns on no day (choose at least one).

Preview for today

The Preview for today button runs the real query against the management system without saving or sending anything, and shows how many invoices the rule would pick up today:

Example result
Due on 10/10/2026: 1,256 open invoice(s), 1,198 with WhatsApp on file, 58 without phone, 0 already sent by this rule.

If the query fails, you see Could not query the management system right now with the reason. If a field is invalid, you see Check the rule fields.

  1. Fill in the three sections.
  2. Check the In practice strip and run Preview for today.
  3. Click Save. The message Rule saved. confirms it, and the rule enters the list as Enabled.

Reminder templates and variables

Meta templates have numbered variables in the text ({{1}}, {{2}}...). In the rule, each {{n}} in the template receives one invoice field: for each variable there is a Variable N selector with the options below. Check the order: the form suggests an initial sequence, but you are the one who knows what the template text expects in each position.

OptionWhat goes in
Customer nameThe full name on file.
First nameOnly the first name, for a more personal text.
Amount (R$)The invoice amount, in the format R$ 99,90.
Due date (dd/mm/yyyy)The due date.
Days until or since the due dateHow many days are left (before) or have passed (after), without a sign.
Invoice descriptionThe description the management system gives the invoice.
Pix copy and paste codeThe invoice's Pix code.
Boleto digitable lineThe digitable line.
Boleto linkThe boleto address, when the management system provides it.

The values are fetched at sending time, not during the scan, so they reflect the current invoice. Since Meta rejects empty variables, a field that does not exist on the invoice is sent as -.

Text-only template or template with copy buttons

TypeHow the customer paysNotice on screen
Text onlyUsing the code you place in a variable (Pix copy and paste, digitable line or link).Text-only template: for the customer to pay, put the Pix code or the digitable line in a variable.
With payment button (order details template)The message arrives as a WhatsApp order: the header image becomes the square item thumbnail (use square artwork, such as 1080 x 1080), description and amount come from the invoice, and the customer taps Review and pay to copy the Pix code or the boleto code on the order screen. Payment only shows on the phone; on WhatsApp for desktop the order opens without the payment section. The bubble preview draws the order.Template with a payment button: it arrives as an order with the Review and pay button.

For the Pix button, Meta requires the payee Pix key, and the Pix code generated by the management system usually does not carry it. Without the key configured, the form warns For the Pix button, enter the company Pix key in Settings, Channels and allowance tab. With a button template and no key, invoices that have Pix cannot be sent and get the error no Pix or boleto for the buttons. See Invoice with copy buttons.

To write a good template: create a utility category template at Meta, with text that identifies the provider, states the amount and the due date and tells the customer to pay or reply if they have questions. Once approved, use Fetch templates from Meta in the form.


Track billing reminders

The table in the Billing reminders card shows one row per rule, enabled rules first:

ColumnWhat it shows
NameRule name, with the connection and the template below.
When to sendFor example 3 day(s) before the due date, with the management system used below.
Sending windowDays of the week and time, with the Daily limit below.
TodayHow many reminders went out today, and how many are pending.
SentTotal sent since creation, and how many errors.
StatusEnabled or Disabled, the date of the Last scan (or Not scanned yet) and, when there is one, the Last error.
ActionsReminders, Edit, Enable or Disable and Delete.

Disable stops the rule without losing anything: it no longer scans or sends until it is enabled again. Delete asks for the confirmation Delete this rule and its reminder history? and removes the rule along with its reminder history (messages already sent remain in the customers' conversations).

Reminders of a rule

The Reminders button opens the summary (Today, Sent, Replied, Pending, Errors) and the list of the most recent reminders, with customer and phone, invoice and due date, amount, status with its detail, date and the Open conversation link.

StatusMeaning
WaitingRecorded during the scan, waiting its turn within the window, the pace and the daily limit, or waiting for the customer to leave a service conversation.
SentMeta accepted the message.
DeliveredIt reached the customer's phone.
ReadThe customer opened it (when they have not turned off read receipts).
RepliedThe customer wrote to the number within 7 days after the reminder.
SkippedIt did not need to be or could not be sent, at no cost: invoice paid before sending, invoice not found, no phone on file, or 48 h passed without being able to send.
ErrorThe send failed. The detail gives the reason.

Error and status details

DetailWhat to do
no Pix or boleto for the buttonsButton template and an invoice without a payment method the card accepts, or Pix without the key configured. Configure the Pix key in Settings, Channels and allowance tab.
Meta did not deliverMeta accepted the message and later reported a delivery failure (for example, a number without WhatsApp).
management system offline / management system refused accessCheck the integration in Integrations. The rule tries again every 15 minutes.
no management system with search by due dateThe chosen system was removed or disabled. Edit the rule.
management system removedThe invoice's system was deleted after the scan.
connection disconnectedReconnect the number in Connections. Reminders wait for up to 48 hours.
template not approvedThe template was paused, rejected or deleted at Meta. Choose another template in the rule.

Invoice with copy buttons (official API)

Through the official API, the invoice can reach the customer as a payment card: the amount stands out, with the Copy Pix code and Copy boleto code buttons, which copy the code with one tap, ready to paste in the bank app. It is a Meta payments feature for Brazil.

It appears in two places:

  • In billing reminders, when the chosen template is the button type (order details).
  • In the invoice copy sent in the conversation, by the agent (in the customer's invoices window) or by the AI, when the official API is the channel in use.

Configuration

It is in Settings, Channels and allowance tab, Invoice copy with copy buttons through the official API block. Like the rest of the tab, it saves as soon as you click:

Option or fieldWhat it does
Invoice with the Copy Pix code and Copy boleto code buttonsOn by default. The invoice sent in the conversation through the official API goes out as a card. It applies while the 24-hour window is open and follows the same policy as flow menus (on screen: Counts as a menu in the allowance).
Invoice as textThe invoice goes out as text messages: the summary, the QR Code image and the Pix code in its own message to copy.
Company Pix keyCPF, CNPJ, e-mail, phone with +55 or random key. Meta requires the key to show the Copy Pix code button, and the code generated by the management system usually does not carry it. When saving, the screen confirms the recognized type (Key recognized as ...); a key in an invalid format is rejected.
Pix payee nameShown in the card next to the key. Empty: the system uses the name inside the Pix code itself or the WhatsApp account name.

When the card is sent and when the invoice goes as text

In the conversation, the card is attempted when the official API is the first channel for that message: a number with the official API only and an open window; a number with QR and API according to the menu policy in Channels and allowance (by default, while there is free allowance left in the month and the window is open); Official API only mode; or QR offline. In any other case, and also when data is missing (invoice without an amount, without Pix or boleto, Pix without the company key) or Meta rejects the card, the invoice goes in the usual text format, so the customer is never left without the invoice copy.

In the conversation history, the card appears as agent text with the line Payment card sent through the official API with the buttons: ..., so the team knows what the customer received. The Pix QR Code image is not sent along with the card.

Meta charges for the card as an official API message. In billing reminders, it is part of the template (always paid). In the conversation, it counts as a menu in the number's monthly allowance.


Create a list campaign

In the List campaigns card, click New campaign. If there is no connected connection, you see No connected channel to send from.

FieldWhat it does
Campaign nameIdentification (up to 120 characters). It is recorded as an event in each recipient's conversation.
ConnectionThe connected connections you work on, each with its type (WhatsApp (QR) or Official API). The type defines the rest of the form.
Text (QR connection)The message, up to 4,096 characters. Use {{nome}} for the name and {{2}}, {{3}}… for the following file columns.
Template and Preview (official API)The number's approved templates without a media header, with the template text in the preview. Without an approved template, the screen explains that templates are created in the Meta WhatsApp Manager.
Pace (messages per minute)From 1 to 60, default 10. Between 1 and 60. A calm pace keeps the account healthy.
RecipientsThe contact list, one line per customer. See the format below.
Import CSV fileReads a .csv or .txt file and appends the lines to the Recipients field, where you can review them before saving.

Recipient list format

One line per customer: phone; name; extra columns. Repeated or invalid phones are ignored.

Example
5544999990000;Maria;R$ 99,90
5544988887777;João Pereira;R$ 129,90
5511977776666;Ana
  • Phone with country code and area code (for Brazil, starting with 55). Punctuation, spaces and parentheses are ignored. After cleanup, the number must have 10 to 15 digits.
  • Separator: semicolon, tab (paste directly from a spreadsheet) or comma. When the line has a semicolon or tab, the comma is treated as part of the value, so R$ 89,90 arrives intact.
  • Name is the second column (optional). The following columns are extras.
  • A repeated phone keeps only its first occurrence. Invalid lines are counted and reported when saving.
  • Up to 20,000 recipients per campaign.

Variables

ConnectionNameExtra columns
QR (text){{nome}} or {{1}}{{2}}, {{3}}... in the order of the columns after the name.
Official API (template)Template variable {{1}}Template variables {{2}}, {{3}}... If a column is missing, the variable goes empty (and Meta may reject the send to that recipient); columns beyond the template variables are ignored.

When you click Save, the campaign is created as a Draft and the message reports the result, for example Campaign created with 1,250 recipients (3 lines ignored). Nothing is sent until you click Start. If no line is valid, you see No valid recipient in the list.


Send and track a campaign

The table in the List campaigns card shows the most recent campaigns with Name (and the template, when there is one), Connection, Status, Progress (bar with done over total and the errors), Replied, Created at (with who created it) and Actions.

Statuses and actions

StatusWhat it meansAvailable actions
DraftCreated, not started yet.Start, Cancel, Details
SendingGoing out at the configured pace.Pause, Cancel, Details
PausedStopped by you or by the system. Pending recipients are kept.Resume, Cancel, Details
CompletedAll recipients were processed.Details, Delete
CancelledStopped for good: Pending sends will not go out.Details, Delete

The system pauses the campaign on its own when its connection becomes disconnected or is deleted, or when the chosen template no longer exists. Fix the cause and use Resume: sending continues where it stopped, without repeating anyone who already received it. Delete asks for the confirmation Delete this campaign and its recipient history?; messages already sent remain in the conversations.

Details

The Details button opens the Sent, Delivered, Read, Replied, Errors and Pending indicators, the campaign text (on QR) and the table of the first 500 recipients with phone, name, status and sending time.

Recipient statusMeaning
PendingStill in the campaign queue.
SentIt went out through the number.
DeliveredIt reached the customer's phone.
ReadThe customer opened it (when their read receipts are on).
RepliedThe customer wrote to the number within 7 days after the send.
ErrorThe send failed; the reason appears below the label.

Statuses only move forward (Sent, Delivered, Read, Replied): a late receipt never moves a recipient back. In the indicators, Delivered includes those who have already read and those who replied, and Read includes those who replied.

The pace is applied in small batches by the server every few seconds, so the number of messages per minute is approximate. Campaigns and rules active at the same time on the same number add up their paces.


When the customer replies

Each campaign or reminder send is recorded in the customer's conversation, with an event that identifies the source (the campaign name, or Automatic reminder followed by the rule name), so whoever handles the customer later knows what they received.

  • A new conversation stays closed. If the send opened a conversation that did not exist, it does not enter the service queue: it stays closed until the customer replies. This way a campaign to a thousand contacts does not flood the team's queue.
  • The reply opens a normal service conversation. When the customer replies, the conversation follows the usual path: flows, AI, queue, departments and distribution to agents.
  • Conversation already open. In a campaign, if the customer was already in service on that number, the message goes into the open conversation. In billing reminders, the send waits for the conversation to be closed (up to 48 hours).
  • Reply count. The customer's reply within 7 days after the send marks the recipient as Replied (campaign) or the reminder as Replied (billing reminders).

On the official API, the customer's reply opens the 24-hour window: from then on the team and the AI can reply with free text, without needing another template.


Official API costs

Messages sent through QR have no per-message cost. On the official API, Meta charges per message, and templates are always paid, outside the monthly allowance of service messages. That is why the billing reminders card warns: Each reminder goes out as an official API template: Meta charges per message and it counts against the number allowance.

SendChannelCost
Billing reminderOfficial API (template)Paid per message to Meta.
Campaign on an official API connectionOfficial API (template)Paid per message to Meta.
Campaign on a QR connectionQR (text)No per-message cost.
Invoice copy as a card in the conversationOfficial API (service message)Uses the number's monthly allowance; after that, it is charged.

The month's usage appears on the card of each official API number, on the Connections screen, including the Templates sent (always paid) count. See Official API allowance and costs.

Before enabling a rule or starting a large campaign on the official API, do the math: the rule's Preview for today shows how many invoices would receive reminders per day, and the Daily limit is the cap on each rule's daily spending.


Best practices

  • Build your reminders in steps. A friendly rule a few days before the due date, one on the due date and one after usually cover the cycle well. Adjust the template tone for each moment.
  • Use a template with copy buttons in billing reminders and configure the company Pix key: paying takes one tap and the customer does not need to select the code in the middle of the text.
  • Choose the window with the customer in mind: business hours and weekdays avoid billing messages at inappropriate times and make replies arrive while the team is working.
  • Keep the WhatsApp field in the management system up to date. Billing reminders use the phone on file; the preview shows how many customers have no phone.
  • Test with a small list before a large campaign: create a campaign with two or three team numbers, start it and check the text, the variables and the delivery.
  • Prefer a calm pace and a daily limit compatible with the team's capacity to reply.
  • Send only to people who expect to receive it, with text that identifies the provider and clearly says what it is about.
  • Watch the errors in the details: phones without WhatsApp, templates paused by Meta and integration failures show up there first.

Common problems

SymptomLikely cause and solution
The page shows a plan notice instead of the cardsThe current plan does not include sending automation (PREMIUM and above).
New reminder rule offers no numberThere is no connected number you work on. Connect one in Connections or ask the manager to enable the number in your agent record.
Last error with sending blocked by MetaThe WhatsApp Business account is blocked by Meta, almost always because of an invalid payment method. Open the connection card in Connections and use the Payment method button. Then click Test connection; the rule resumes on its own.
Reminders marked Sent that never become DeliveredMeta confirms delivery within seconds. If nothing changes for hours, receiving is not arriving or the account is blocked. The connection card warns in both cases; click Test connection.
The new template does not appear in the formIt has not been approved by Meta yet, it has a media header or the list was not refreshed. Use Fetch templates from Meta.
The rule is enabled but shows Not scanned yetThe sending window has not started yet today or the day is not selected. The scan happens at the first moment inside the window.
Last error with management system offlineThe query failed; the rule tries again every 15 minutes. Check the integration in Integrations.
Many reminders Skipped with no phone on fileCustomers without a phone or WhatsApp in the management system. Complete the record in the ERP.
Reminders with the error no Pix or boleto for the buttonsButton template and the company Pix key not configured, or an invoice without a payment method. Configure the key in Settings, Channels and allowance tab.
Reminders stay Waiting for a long timeCustomer in service (the reminder waits for the conversation to close), daily limit reached or outside the window. After 48 hours they are discarded.
The campaign switched to Paused on its ownThe connection dropped, was deleted or the template disappeared. Fix it and use Resume.
Many lines ignored when creating the campaignPhones without country code and area code, too short or repeated. Check the format: 5544999990000;Name.
Variables appear swapped in the messageIn a campaign, check the order of the file columns; in a reminder rule, the option chosen in each Variable N.
Campaign replies do not appear in the queueThey do, but only when the customer replies: the conversation opened by the send stays closed until then.