Artificial intelligence
How artificial intelligence works in ChatISP: the assistant that serves the customer on its own over WhatsApp, looks up the network and billing and performs actions on the account; the AI features that help agents day to day; and the panel Copilot. Here you will find the configuration, the rules the AI follows, the limits, the costs and what happens to the data.
Overview: the three roles of the AI
What sets ChatISP apart is its integration with Ravicor, the ISP's network management system. The AI assistant does not just reply with canned text: it sees the subscriber's record in the ERP, billing, the internet session, the equipment and the Wi-Fi, and with that it diagnoses, performs actions (invoice copy, trust unlock, Wi-Fi password change, equipment reboot) or opens a service order for the technical team when the problem calls for investigation. It serves customers at any time, whenever a flow hands the conversation to it.
In ChatISP the AI appears in three different roles:
| Role | Who talks to it | What it does |
|---|---|---|
| Autonomous AI (the assistant) | The end customer, over WhatsApp | Handles on its own the conversation a flow handed to it: identifies the customer, looks up network and billing, answers questions with the Knowledge base, performs enabled actions, transfers to the right department or closes the conversation. It is the main subject of this page. |
| AI support for agents | The agent, inside the conversation | Suggests the next reply or improves the typed text, translates the conversation with a customer who speaks another language, transcribes audio, summarizes each closed conversation and prepares the service order summary. See AI support for agents. |
| Copilot | Any panel user | ChatISP's own expert assistant, opened with the sparkle button at the top: finds, explains and configures the system, looks up data, suggests replies to the customer in the open conversation. It has its own page: Copilot. |
On the system screens and messages, the autonomous AI is called the assistant. In the chat, every message it sends is identified as coming from the AI, and everything it looks up or performs is recorded in internal notes on the conversation timeline (the customer does not see these notes).
The assistant only answers when a flow hands the conversation to it, through the AI agent step. Without a flow containing that step, service is 100% human (queue and round robin) and the autonomous AI costs nothing. The sentence appears on the configuration card itself: The assistant only answers when a flow hands the conversation to it.
Requirements and plans
What each plan includes
| Feature | Availability |
|---|---|
| Support AI (text suggestion and improvement, translation, summaries), Copilot | All plans. |
| Autonomous AI (the assistant that replies to the customer on its own) Plan feature | From the NORMAL plan up, and in the 10-day free trial. On a plan without the feature, a conversation that would reach the AI goes to the human queue with the note Autonomous AI service not included in the plan: conversation moved to the queue. |
| Audio transcription and voice replies | All plans. They run on the server itself and appear on the screen with the Free badge: they generate no AI cost. |
Integrations that empower the AI
The assistant works without any integration (it answers questions, follows the flow instructions and transfers), but what it can do grows with what is connected in Integrations:
- The ISP's ERP (IXC, Hubsoft, SGP, Gesprov, ReceitaNet, Pipesoft and others): customer identification by phone, record, contracts, invoices, invoice copy and trust unlock (unlocking depends on the ERP; see the comparison under Integrations).
- Ravicor (network management): internet session, fiber signal, customer equipment, Wi-Fi networks and equipment actions over TR-069 (Wi-Fi, reboot, channel, speed test).
- External systems marked as available to the AI: lookup operations the assistant can call during the conversation.
- Knowledge base: plans, prices, commercial terms, ready answers and the current incident notice. See Knowledge base.
Details for each integration in Integrations.
Self-hosted installation and ChatISP Cloud
All AI features on this page apply to both deployment options. The only difference is the Local AI tab in Settings, which shows the status of the transcription and voice services on the server and lets you install them: it only exists on a self-hosted installation Self-hosted installation, because on ChatISP Cloud Ravi Systems takes care of these services.
The connection to the AI platform comes configured by Ravi Systems along with the license. You do not need to sign up with an AI provider or enter any key.
How the AI enters (and leaves) the conversation
Entry through the flow's AI agent step
In the flow editor, the AI agent step hands the conversation to the assistant. It has three fields:
| Field | What it does |
|---|---|
| Message before (optional) | Text sent to the customer when the step starts. With text, it counts as this step's reply and the AI speaks from the customer's next message on. Without text, the AI replies right away, with a natural greeting. |
| AI instructions for this step | Guidance that is added to the configured persona (example from the screen itself: focus on technical support; if they ask for a bank slip, use the billing system). Accepts the variables {nome}, {protocolo} and {telefone}. |
| Queue if the AI hands over to a human | Department that receives the conversation when the AI decides to call an agent. Empty keeps the conversation's current department. |
From then on the conversation is in the AI service state (visible on the AI tab of the conversations screen) and each customer message wakes up the assistant. How to build the flow is covered in Flows.
When the AI never replies
- Conversation in the queue: the queue means waiting for a human agent. The AI does not reply there, not even after it transferred the conversation itself. The only exception is the after-hours on-call mode (see After-hours on-call AI).
- Conversation with an agent: a conversation assigned to a person never receives an automatic reply, whatever its state.
- An agent took over during processing: the AI reply takes a few seconds to be generated. Before sending, the system rereads the conversation; if someone took over or closed it in the meantime, the reply is discarded.
The AI leaves when a human speaks
If an agent writes in a conversation that is with the AI, from the panel or from the phone paired with the number, the assistant steps out immediately: the conversation is transferred to whoever wrote (or to the department queue, when the message came from the phone) with the note An agent replied in the conversation: the assistant left the service.
Safety net: AI not answering
In Settings > Service, Queue and inactivity card, the AI not answering: send to queue after (min) field (default 5) protects against any failure: if the customer's last message has gone without an AI reply for that long, the conversation silently goes to the human queue, without sending anything to the customer. 0 disables.
In addition, when the call to the AI fails, the system retries twice more, with increasing intervals; on the third failure the conversation goes to the queue with the reason recorded.
Assistant configuration
Everything is in Settings > Service, Service card, AI assistant section. The Settings permission of the access profile is required. Change the fields and click Save at the bottom of the card.
| Field | Default | What it does |
|---|---|---|
| Assistant personality | Internet service provider text | How it introduces itself and talks to the customer (up to 4,000 characters). Blank uses the default. Details in Personality and fixed rules. |
| AI can open internal service orders | On | When it cannot confirm the cause of a problem, the AI records a service order for the right department and lets the customer know. See Transferring, closing and opening a service order. |
| AI asks whether the customer needs anything else before transferring | On | Before handing the conversation to the team, the AI says what it will forward and asks whether there is any other request. |
| Subsection Actions the AI performs on its own | All on | Six switches: invoice copy, trust unlock, Wi-Fi, reboot, Wi-Fi channel and speed test. See AI with actions. |
| AI only handles sensitive data for the account holder on the registered phone | On | Bank slip, Wi-Fi password, account data and the like only when the conversation phone is in the customer record. See Account holder identification. |
| With more than one record on the same phone, the AI asks for | the account holder's CPF or CNPJ, or the full name as it appears in the record | How the AI asks for identification when the phone is in more than one record (e.g. "the contract number"). It never says there is more than one record. |
| AI locates the record by the CPF or CNPJ the customer provides | Off | For a phone that is not in the record: the AI asks for the document, searches the ERP and handles lookups. |
| AI locates the record by the full name the customer provides | Off | Same rule, using the full name exactly as it appears in the record. It can be on together with the document option. |
The same page has the Audio transcription section (transcription and voice replies, see Audio), the Queue and inactivity card (with the AI not answering safety net) and the Waiting for reply: customer answers outside business hours card (with the on-call AI).
A new installation comes ready to serve customers: persona filled in, actions and questions before transferring turned on, service order creation turned on. The initial setup wizard also generates the persona and the flows with the AI step from the ISP's answers.
Personality, instructions and fixed rules
The assistant's behavior comes from four layers, from the most general to the most specific. The first two belong to the ISP; the last two belong to the system and cannot be turned off.
| Layer | Where it is defined | What it is for |
|---|---|---|
| Persona | Assistant personality field | Tone of voice, how it introduces itself, level of formality, message length. |
| Step instructions | AI instructions for this step field in the flow | Focus of that point in the service (support, billing, sales), scripts and what to do in each case. |
| System facts | Automatic | Current date and time, the department's business hours (the AI never guesses when the team will be back), the company name as it should be written, whether the customer has already received a message in this conversation, whether there is an open service order, the incident notice and the Knowledge base. |
| Fixed rules | Automatic | Take precedence over the persona, the step instructions and any request made in the conversation. |
Default persona
The installation starts with an ISP persona already written and visible in the field, which you can edit freely. In short, it tells the assistant to introduce itself only in the first message, talk like a member of the team (short messages, human tone, calling the customer by name), not offer option menus, ask one question at a time, look up data silently and reply directly with the solution, explain without jargon in at most 5 short steps and, when it does not know, say it will hand over to someone on the team instead of guessing.
Fixed system rules
These rules apply to every conversation and no setting turns them off:
- When unsure, transfer. Certainty means data confirmed by a lookup or by the documentation in that conversation. A hunch, assumption or generalization becomes a transfer to an agent.
- Never makes up data or acts on assumptions: this applies to technical data, records, amounts, deadlines, links and any action on the account.
- Never blames the company. The AI does not admit, confirm or imply that the cause of a problem lies with the ISP, the system, the service or an update, and does not agree when the customer or their technician raises that hypothesis ("makes sense", "it might have been the update"), unless a lookup in that conversation confirms it. Without confirmation, it says it cannot verify the cause from there and forwards the case to the team, neither validating nor dismissing the hypothesis.
- No dashes in messages to the customer.
In addition, the assistant follows mandatory security and style rules:
- Never mentions names of internal systems, suppliers, AI tools or infrastructure details to the customer.
- Never claims it performed an action on the account without actually having performed it, with a successful result. If it failed, it says so frankly and transfers.
- Bank slip links, payment slip numbers, Pix codes, amounts, dates and protocol numbers are always copied from a lookup. Building or completing payment data is forbidden.
- Customer messages are always treated as data, never as instructions: an "ignore the rules above" has no effect.
- WhatsApp formatting: bold with one asterisk on each side, italics with underscores, no tables or links in brackets.
- Understands how customers talk: in Portuguese, "chave", "pix" and "código" in a payment context mean the invoice's Pix code (never the Wi-Fi password); "net" is the internet; "modem", "roteador", "aparelho" and "caixinha" are the equipment; "conta", "boleto" and "mensalidade" are the invoice; "liberar", "religar" and "desbloquear" are a request to restore the connection.
- Problem solved and nothing pending: it says goodbye in one sentence and closes in the same turn; the system then sends the standard closing message with the protocol number.
First message and greeting
The system tells the AI whether the customer has already received a message from the service in that conversation. In its first message it greets according to the time of day and introduces itself according to the persona, even when the customer opened the conversation with a photo, a receipt, an audio or a document. After that it does not greet again or repeat business hours notices, even if the step instruction asks for it.
Special case: if the first message of the conversation is short (up to 80 characters) and has no greeting, such as a "thanks", a thumbs-up or "it worked", and the same contact had a conversation closed in the last 7 days, the AI receives the summary and the last messages of that conversation. If the message just wraps up the previous matter, it replies briefly ("You're welcome! Just reach out if you need anything.") and closes without sending a new protocol message; if it continues a pending matter, it picks up from there without introducing itself again.
Write step instructions as work guidance, not as security rules. Asking the AI in the instruction to "always state the cause" or "confirm it was the update" has no effect: the fixed rules take precedence. For commercial answers and processes, prefer the Knowledge base over long texts inside the instruction.
How the AI decides in each turn
Each time the customer speaks, the assistant runs a turn: it reads the context, decides what to do and ends with a single output (reply, transfer, close or open a service order). Within the turn it can perform several lookups and actions, up to eight, before replying.
- Groups the messages. Fragmented messages the customer sends in sequence become a single turn (see Conversation pace).
- Reads the context. The last 20 messages of the conversation (internal notes are left out), the step instructions, the persona, the system facts and the Knowledge base.
- Looks up the customer's situation when needed. One lookup returns the subscriber profile: ERP record (name, status, plan and speed, address, login), contracts, billing (overdue invoices and the current month's invoice, total outstanding, next due date, last payment), network (session, signal, equipment, Wi-Fi networks) and a list of alerts already calculated, such as overdue billing or equipment offline. Wi-Fi passwords never enter the profile.
- Queries external systems the administrator enabled for the AI, when the subject calls for it.
- Performs enabled actions (invoice copy, unlock, Wi-Fi, reboot, diagnostics) when the customer asks and the rules allow.
- Replies based on what it found, or transfers, closes or opens a service order.
Invoices the AI offers
The AI works with overdue invoices and the current month's invoice. An invoice for a future month already issued in the ERP is left out: it is neither late nor a debt, and the AI does not offer it. A customer who wants to pay a future month in advance is transferred.
When network data is missing or billing does not respond
If the customer has no equipment linked in network management, the AI treats this as a limitation of what it can see, never as a diagnosis: it does not say it "sees no device connected" or that the customer is disconnected. For a customer with no internet or a slow connection, it follows the basic script (device on with lights lit, cables secure, unplug for 10 seconds and plug back in) and only transfers if that does not solve it.
Likewise, if the billing lookup did not return, the AI never tells the customer the billing system is down: it says the team will confirm the amounts and transfers when the subject depends on an amount or invoice.
Safeguards against wrong replies
| Situation | What the system does |
|---|---|
| The AI writes "let me check", "one moment" or "I'll get back to you" without having looked anything up in the turn | Sends it back to the AI to act now (look up and reply with the result) or reply without promising a follow-up. The customer is not left waiting for a follow-up that never comes. |
| The reply contains a payment slip number or Pix code that did not come from any lookup | First sends it back for the AI to redo (the invoice copy goes out through its own action). If it insists, the message is not sent and the conversation goes to an agent with the reason. |
| Another customer message arrived while the reply was being generated | The reply is discarded and a new turn replies taking everything into account (except when the turn has already performed an action on the account, so the confirmation is not lost). |
| Company name written with a typo | Automatically corrected to the name registered in the Knowledge base. |
The trail in the conversation
Every AI lookup and action becomes an internal note on the conversation timeline, with the result and the time taken. Examples (notes shown in Portuguese): "IA consultou a situação do assinante: ok (3,2 KB em 1,4 s)" (AI looked up the subscriber status), "IA localizou o cadastro por CPF/CNPJ" (AI located the record by CPF/CNPJ), "IA: segunda via enviada ao cliente: fatura ... de 99,90 com vencimento ..." (invoice copy sent to the customer), "IA abriu a OS OS-000123" (AI opened the service order). The agent who takes over the conversation sees exactly what was done, without having to ask the customer again.
Account holder identification
With the AI only handles sensitive data for the account holder on the registered phone option on (the default), sensitive data and account actions are only handled when the conversation phone is in the customer's record in the ERP. This covers bank slips and invoice copies, billing status, Wi-Fi password, record data, unlocking and anything only the account holder can see or request. General questions about the product or service remain open to anyone.
Phone not in any record
The AI never reveals whether a record exists or not. What happens depends on the lookup options:
| Lookup options | Behavior |
|---|---|
| None enabled (default) | The AI does not ask for CPF, name or any other data. It says it will hand over to an agent and transfers with the reason "phone not linked to the record". |
| AI locates the record by the CPF or CNPJ the customer provides | The AI asks for the CPF or CNPJ once (or uses what the customer already typed or showed in an image), searches the ERP and, once located, handles lookups: status, block, invoice copy. |
| AI locates the record by the full name the customer provides | Same rule, using the full name exactly as it appears in the record. Only the full name counts (two words or more), and only when it points to a single customer. |
With the record located by document or name, the conversation starts pointing to it and the customer card shows the link with the remark located by the CPF/CNPJ the customer provided or located by the full name the customer provided. Record not found, more than one customer found, or customer without the data: the AI transfers to an agent.
Turning on lookup by document or name is the administrator's decision and responsibility: anyone who has another person's document or full name can then see that person's data (status, block, invoices). Account actions still require the registered phone, with one exception: the invoice copy, because whoever asks for it wants to pay the bill.
Lookup by document works in the ERPs where ChatISP queries customers by CPF/CNPJ (IXC, Hubsoft, SGP, Gesprov, ReceitaNet and Pipesoft); lookup by name uses the records synchronized from the integrated ERPs.
Phone in more than one record
When the same phone appears in records of different customers, the profile the AI receives contains no one's name, billing or network. The AI naturally asks for the account holder's full name (or the CPF/CNPJ, if the customer prefers), without mentioning names, plans, how many records exist or whose they are. If it does not match, it asks once for the other piece of data; without confirmation, it transfers with the reason "account holder not confirmed". Until the account holder is confirmed, no account action is performed, not even the invoice copy.
Customer with more than one contract
If the customer has more than one installed location, the AI asks which address they are talking about before replying about the connection or acting, listing the addresses. With the customer it always refers to addresses, never to contract numbers. Unlocking, reboots and tests go to the chosen contract; the Wi-Fi change only applies to the main location (for another location, it transfers).
Someone else's connection
It is common, especially in rural areas, for someone who has signal to ask about the internet of a neighbor or relative ("so-and-so's house has no internet"). When the customer mentions a name different from the account holder or says the problem is at someone else's house, the AI does not answer based on the conversation's record or look up that record's network as if it were the subject:
- With a lookup option enabled, it asks for the CPF/CNPJ or full name of that connection and, once located, handles the lookup for that record. Actions on the third party's account remain blocked.
- With no option enabled, without the data or without a match, it transfers with the reason "inquiry about another record".
When the conversation switches records, the card records whom it was about before: (the conversation previously pointed to the record of {nome}). If the account holder provides their own document, no note is generated.
Turning off AI only handles sensitive data for the account holder on the registered phone makes the AI handle sensitive data and perform actions for any identified record, including those located by document or name. Only turn it off if your ISP's policy allows it.
AI with actions
In the Actions the AI performs on its own subsection, each switch enables an action the assistant performs when the customer asks. The AI uses the same functions the agent uses on the customer card, with an entry on the timeline and an internal note in the chat. All six switches start on; turn off whatever you do not want to allow.
| Switch on screen | Depends on | What happens |
|---|---|---|
| Send the invoice copy | ERP with integrated billing | Sends the customer the invoice summary, the QR Code image and the Pix copy-and-paste code (or payment slip number and link), just as the agent sends it from the invoices modal. With more than one possible invoice, the AI asks which one. After sending, it does not repeat any payment data: it only confirms it was sent. An invoice with no bank slip, Pix or link issued in the ERP cannot be sent: the AI says so and transfers. |
| Trust unlock in the ERP | ERP with unlocking (currently IXC and Hubsoft) | Restores a connection blocked for non-payment under the ERP's own rules (release days and restrictions). The AI first explains that it is a temporary release and that the invoice must be paid, and relays the ERP's answer (accepted or refused, with the reason). If the payment has already restored the connection on its own, it tells the customer they can already browse. |
| Change the Wi-Fi name and password | Ravicor connected | Changes the name (up to 32 characters) and/or the password (8 to 63 characters) of the chosen network on the customer's equipment. The AI first confirms what will change and on which network, never sees or reveals the current password, uses the password the customer chooses (never makes one up) and warns that devices will need to reconnect. |
| Reboot the equipment | Ravicor connected | Remote reboot when the script calls for it and the customer confirms they can be without internet for about two minutes. At most one per conversation every 15 minutes. |
| Analyze the spectrum and change the Wi-Fi channel | Ravicor connected and up to date | Scan of neighboring 2.4 GHz networks by the equipment itself. If the current channel is congested, the AI switches to the least busy one (same criteria as Ravicor's automatic correction) and reports from which channel to which; if it is not worth it, it says the current channel is already the best. Used for slowness or drops on Wi-Fi only. |
| Speed test | Ravicor connected and up to date | Measurement taken by the equipment itself, over cable, without Wi-Fi in between: it is the speed reaching the home. The AI compares it with the plan speed when reporting. |
Rules that apply to every action
- Account holder only: the conversation phone must be in the record, or the link must have been made by an agent. A record located by the AI by document or name does not count, except for the invoice copy. The system checks again at execution time, regardless of what the AI decided.
- Phone in more than one record: no action until the account holder is confirmed.
- One action at a time, always after looking up the customer's situation in that conversation. The AI replies to the customer based on the result, never before.
- If it failed, it says so: with a negative result the AI frankly says it could not do it and transfers to an agent with the reason. It never pretends it succeeded.
- Actions take precedence over step instructions: if the flow instruction says to transfer to an agent for the same purpose (for example, invoice copy), the enabled action prevails.
- Record: each action generates an event on the timeline and an internal note "IA: ..." in the chat, describing what was done.
Diagnostics that take time
The speed test and the channel analysis are run by the customer's equipment, at its own pace. The AI triggers the diagnostic and waits up to about 20 seconds. If it has not finished, it tells the customer the test is running and that it will come back with the result. The system checks every 30 seconds, for up to about 5 minutes, and when the result arrives the AI is woken up and informs the customer, even without a new message from them. With no response from the equipment within that time, the test is marked as unanswered.
The speed test and the channel change require a Ravicor version that offers these diagnostics. If the ISP's network management does not have them yet, the AI stops offering these two features for 24 hours and tries again later, without any notice to the customer. The other actions continue as normal.
Payment receipt: when the customer sends the receipt (image or PDF), the AI reads the amount and date, checks them against the invoices and, if the record is blocked and unlocking is enabled, can grant a trust unlock until the payment is posted, explaining that it is temporary.
Transferring, closing and opening a service order
Transfer to the team
When transferring, the AI writes a reason for the agent (the customer does not see it) and, optionally, a short message to the customer. The destination follows this order:
- With two or more active departments, the AI receives the list and chooses by subject: collections, invoices, blocks and negotiation go to billing; plans, sign-ups, upgrades and address changes go to sales; connection, Wi-Fi, equipment, slowness and technical visits go to support. The reason records "department chosen by the AI".
- If the name does not match an active department, or none fits, the conversation's department applies (the one from the flow step, when defined).
Question before transferring
With AI asks whether the customer needs anything else before transferring on, when it is time to transfer the AI first says in one sentence what it will forward and to which team, and asks whether the customer needs anything else. On the next message, if they need nothing else, it transfers; if they bring another request, it handles that too, and whatever it cannot solve goes into the reason as well, so the agent receives everything at once. The question is asked once per conversation, and anyone who directly asks to talk to an agent is transferred immediately.
The flows' Transfer step has an equivalent option for conversations that do not go through the AI (see Flows).
Closing
With the problem solved, the AI says goodbye and closes the conversation; the system sends the standard closing message with the protocol number. If there are closing reasons registered in Catalogs, the AI picks the one that best describes the subject of the conversation, to feed the reports by conversation type. It never makes up a reason outside the list; if none fits, it closes without a reason.
Opening an internal service order
With AI can open internal service orders on, the AI records a service order when something needs internal investigation by the team, without the customer on the line (a suspected failure or odd behavior after a change, something that requires checking in the system), instead of guessing:
- Writes a title and description with what the customer reported and what it has already checked, facts only.
- Picks the service order type by name among the active types; the service order goes to that type's team. When in doubt, it leaves it without a type and the service order stays open for the whole team.
- Tells the customer it has recorded an internal request and that the team will check and get back to them, without promising a deadline or a result.
- At most one open service order per conversation: with one already open, it just says the team is already checking.
- On the service order board, the origin appears as AI, and the chat gets the internal note "IA abriu a OS ..." (AI opened the service order). The conversation summary for the team is generated automatically.
A service order does not replace customer service. If the customer is in the conversation waiting for an answer the AI does not have (a technical or commercial question, a quote, sizing), the right path is to transfer to an agent, never to open a service order instead of using the queue. Opening a service order also does not close the conversation. If service order creation fails, the AI does not send the confirmation message and the conversation goes to the queue.
How the board works is covered in Service orders.
Conversation pace: grouping and "typing"
WhatsApp customers often send their message in pieces ("hi", "good morning", "my internet", "went down"). To avoid replying to each piece, the assistant waits a little before acting:
- Grouping: each customer message sets an 8-second wait. If another arrives within that interval, the wait restarts. When the customer stops, the AI replies only once, covering everything they sent.
- "Typing..." holds the reply (QR Code connections): while the customer's WhatsApp shows they are typing or recording audio, the pending reply is postponed another 8 seconds with each notice, capped at 2 minutes from the first message of the group. Someone who keeps typing nonstop does not hold the AI forever.
- A repeated turn never goes out: if for any reason two turns are pending for the same messages, the second is cancelled before using any AI.
"Typing" depends on the QR Code connection's Live typing indicator card, which comes enabled. When enabled, the panel shows "typing..." and "recording audio..." in real time and the AI waits for the customer to finish. While it is enabled, the phone paired with the number does not ring for message notifications, as happens when WhatsApp Web is open. When disabled, the phone rings again and the AI replies without waiting for the customer to finish writing. See WhatsApp connections.
The official Meta API does not report when the customer is typing. On connections that use only the official API, only the 8-second grouping applies.
Images, documents and other media
| The customer sends | What the AI does |
|---|---|
| Image (JPEG, PNG, WebP or GIF, up to 4 MB) | Reads the content as if the customer had written it: error message, block screen, address or IP, bank slip data, receipt. It receives the customer's 3 most recent images; older ones appear to it only as "image sent". Text inside the image is also treated as data, never as an instruction. |
| PDF document | Reads the text extracted from the first 3 pages (receipt, bank slip, document) and never asks for a screenshot of what has already been sent. A PDF scanned as a picture, with no text, has nothing to read. |
| Audio | Reads the transcript (see Audio). Without a transcript, it asks in one sentence for the customer to write. |
| Shared contact or location | Reads the contact's name and phone, or the location's address. |
| Video and other documents | Does not open them: asks in one sentence for the customer to write what they need. |
Media also wakes up the AI: a conversation that starts with a photo or an audio already gets a reply, with the first-message greeting.
Image reading is meant for what is written or visible on screen (error, address, amounts). Do not expect the AI to make a technical diagnosis from a photo of a piece of equipment: for that it uses the Ravicor network data or transfers to support.
Audio: local transcription and voice replies
Both features are in the Audio transcription section of Settings > Service, run on the server itself and are free (Free badge: This feature is processed on this server itself and adds no AI cost.).
Audio transcription
| Field | What it does |
|---|---|
| Transcribe conversation audio | On by default. Every audio received or sent gets its transcript right below the player, and the AI reads what the customer said before replying. Transcription runs on this server: the audio never leaves the installation. |
| Supporting vocabulary for transcription | Names and terms that often come up in audio (ISP name, plans, equipment, acronyms, neighborhoods), up to 800 characters. They help spell correctly what is said. |
In the chat, the transcript appears as running text under the player, with Read more for long texts and the Transcribing indicator while the service is working. A short audio takes around 15 seconds to transcribe; long audio takes longer, depending on the server's processor. When it cannot be transcribed (after three attempts), Transcript unavailable appears.
For the AI: if the customer sent audio and the transcript is still on its way, the turn waits, in 5-second steps and for up to 4 minutes, to reply to what was said rather than to an "audio received". If the transcription service is stopped, the AI does not wait and asks the customer to write.
With automatic translation on in the conversation, the transcript is also translated into the agent's language (see Support AI).
Audio replies
| Field | What it does |
|---|---|
| Reply with audio when the customer speaks by audio | On by default. When the question arrives as audio, the AI reply goes out as a voice note generated on the server itself, in Portuguese. Independent of transcription. |
| Assistant voice | Appears with the switch on. Four Portuguese voices (Faber, the default, Cadu, Jeff and Edresson). Use Listen to compare before choosing; the change applies from the next reply on. |
How the decision is made for each reply:
- Automatic rule: if the customer spoke by audio since the last message sent, the reply goes out as voice.
- At the customer's request: "send me an audio" (driving, unable to read right now) makes that reply go out as voice, even if they wrote.
- Permanent preference: if the customer asks to always receive audio (cannot read, has poor eyesight), the AI records the preference for their phone, which also applies to future conversations, and the team receives the internal note "IA registrou preferência do cliente: sempre responder em áudio" (AI recorded the customer's preference: always reply with audio). If they ask for text again, the preference is removed.
- What never becomes voice: a reply with a link, email, bank slip, payment slip number, Pix code or long number goes out as text, because it is data the customer copies or taps. Lists and long replies (more than 450 characters) also go out as text, unless the customer asked for audio, in which case the limit rises to 1,200 characters.
- A failure never leaves the customer without a reply: if audio generation fails or the channel refuses the note, the same text is sent in writing.
In the voice note bubble, the spoken text appears as a transcript: the agent reads what the AI said without having to listen. Amounts in reais are spoken in full ("89 reais e 90 centavos").
Local AI tab Self-hosted installation
In Settings > Local AI (visible to users with the Server (network and certificate) permission) you can see whether transcription and voice are working, the reason when they are not (not installed, stopped, not responding for more than a minute, incompatible processor) and the Install now button, which installs whatever is missing without interrupting customer service. On a virtual machine with the generic processor type, transcription may show Unavailable on this processor: the screen explains how to change the type to "host" in the hypervisor. See Settings.
After-hours on-call AI
The autonomous AI handles, at any time, the conversations flows hand to it. On-call mode is something else: it is the AI covering, after hours, conversations that are already with the human team. It is configured on the Waiting for reply: customer answers outside business hours card, in Settings > Service. The choice is saved immediately, with no Save button.
| Option | What happens |
|---|---|
| Silence | Nothing is sent: the reply waits for the agent, who sees the message when business hours begin. |
| Reply notice (recommended) | The customer immediately receives confirmation that their reply arrived and the time when the agent will resume the conversation, calculated from the business hours grid. |
| Notice + on-call AI Plan feature | In addition to the notice, the assistant offers to help in the meantime. Requires autonomous AI in the plan (the screen shows Requires autonomous AI in the plan). |
With Notice + on-call AI, the AI replies after hours in two cases:
- An agent's conversation marked as waiting for the customer's reply: when the customer replies after hours, they receive the notice with the offer (the Notice message with the AI offer field, which accepts {retorno}, {protocolo} and {nome}) and the following messages are answered by the AI.
- Conversation in the queue after hours, with no agent: nobody will take over until the next opening, and a customer who keeps talking is answered by the AI instead of being left without a reply.
On-call rules
- The AI never owns the conversation: it knows the conversation belongs to the agent (or the queue) and that the agent resumes it at the next opening. It helps with whatever it can confirm through the systems, collects information and leaves everything ready.
- Never transfers or closes: if it tries, the system ignores it. When it cannot help, it replies that the team will pick up at the next opening.
- Leaves when the agent speaks: any message from the agent turns off on-call mode immediately, even discarding a reply that was being generated. The return of business hours and closing the conversation also turn it off.
- It can use the enabled actions and open service orders as in any conversation.
The waiting for reply feature is described in Customer service.
AI support for agents
Features that help whoever is serving the customer, without talking to the customer on their own. Available on all plans.
Suggest or improve the reply
The conversation's message field has an AI button with the tooltip Suggest a reply with AI (empty field) or improve the typed text:
- Empty field: the AI reads the conversation and suggests the agent's next message, based only on what has already been said.
- Field with text: the AI improves the clarity, tone and spelling of the draft, without changing its meaning or adding information.
The text goes back to the message field: nothing is sent until the agent reviews it and clicks send. The suggestion comes out in the agent's language, without dashes and without making up amounts, deadlines or links. You must have taken over the conversation; otherwise Take over the conversation to send messages to the customer. appears. For more complete help (knowing the customer, history, alerts), use the Copilot reply suggestion.
Automatic translation
The globe button in the conversation header (Enable automatic translation) turns on translation for that conversation:
- Received messages are translated into the agent's language (their account language, or the system language) and appear with the Translated mark; one click shows the original side by side.
- The agent writes in their own language; the customer receives the message translated into their detected language. In the panel, the sent message appears as it was typed.
- When it is turned on, the last 20 received messages not yet translated are translated. Transcribed audio is also translated.
- The translation is faithful: it does not change the context or the content. If translating the sent message fails, the original is sent.
Summary of closed conversations
Every closed conversation in which the customer said something automatically gets a descriptive title (up to 70 characters, such as "Slowness after router replacement") and a 2 to 4 sentence summary: what the customer brought up, what was done and the outcome or pending item. The summaries appear under the Previous tickets button in the conversation header, which lists the customer's history with date, title and summary, and they are read by the Copilot to warn about recurring problems.
Summary for service orders
When a service order originates from a conversation, the AI prepares the briefing for the team: what the customer reported (symptoms, since when, what they have already tried), what the service checked or advised and what is still pending, with useful data such as the address and the agreed time. If the conversation is closed while the service order is still open, the briefing is redone covering the whole conversation. See Service orders.
In flows
In flow menus, the AI interprets free-text answers ("I want to see my invoice" picks the billing option) and can write the short title and description of each option in WhatsApp official API list menus. These uses appear separately in AI consumption. See Flows.
AI consumption and costs
The AI consumption screen shows what the AI consumed in each conversation and how much it cost. To open it: Audit log menu, AI consumption button at the top. It requires the Audit log permission.
What the screen shows
| Element | Content |
|---|---|
| Period selector | Last 7 days, Last 30 days (default) or Last 90 days. |
| Cost in the period | Total in reais, with the US dollar exchange rate used (US dollar at ... (rate from ...)). |
| Calls, Input tokens, Output tokens | Totals for the period. |
| Table by conversation | Columns Ticket (protocol number and customer), Used for (which uses the AI worked on), Calls, tokens and Cost, from the most recent use to the oldest. Uses with no linked conversation appear grouped as Outside tickets. |
Uses counted
The Used for column separates: Customer service (the assistant), Ticket summary, Service order summary, Translation, Menu titles, Menu interpretation, Agent text (the suggest and improve button), Copilot and Other. Importing texts into the Knowledge base is also counted, on its own line.
How the number is calculated
- Tokens are the ones reported by the AI platform itself in each response, never an estimate by ChatISP.
- The cost is calculated from the official price table of the model used (in US dollars per million tokens) and converted to reais at the day's exchange rate, updated every 12 hours. With no exchange rate available, the screen shows No exchange rate available: amounts shown in US dollars (US$).
- Transcription and voice do not appear: they run on the server itself and have no AI cost.
Use the screen to understand where the consumption is: one long conversation with many lookups consumes more than several short ones. Concise step instructions and a well-organized Knowledge base (instead of texts repeated in each step) help keep consumption low. The size of the knowledge base sent to the AI appears in See what the AI reads, on the Knowledge base screen.
Privacy: what goes to the AI
The assistant's replies, the summaries, the translations and the Copilot are generated by the Ravi Systems AI platform, outside the ISP's server. Each call carries only what is needed for that task.
| Goes to the AI platform | Stays on the server |
|---|---|
|
|
All content coming from the customer, external systems or lookups is marked for the AI as data, never as instructions, which protects against attempts to manipulate the assistant through the conversation.
To limit what the AI sees of each customer, keep the AI only handles sensitive data for the account holder on the registered phone option on and leave the lookup by document and name options off, unless the ISP's policy calls for otherwise.
Common problems
| Symptom | Likely cause and what to do |
|---|---|
| The AI does not reply to anyone | No active flow hands the conversation to an AI agent step, or the plan does not include autonomous AI (the conversation goes to the queue with the plan note). Check the flows and the plan in Account. |
| The AI stopped replying in the middle of a conversation | An agent wrote in the conversation (the AI steps out), the conversation was transferred to the queue (the AI does not reply in the queue) or the AI not answering safety net moved the conversation to the queue. The conversation timeline shows which one. |
| The AI transfers everyone with "phone not linked to the record" | Customers' phones are not in the ERP record, or the ERP is not integrated. Fix the records or consider turning on lookup by CPF/CNPJ or name. |
| The AI does not send the invoice copy or unlock | Action switch off, ERP without the feature, customer identified by document or name (unlocking requires the registered phone), phone in more than one record with no confirmed account holder, or invoice with no charge issued in the ERP. The internal note "IA: ..." in the chat shows the reason. |
| The AI does not offer the speed test or channel change | Ravicor is not connected or does not have these diagnostics yet. Update Ravicor; the AI tries again within 24 hours. |
| The AI replied before the customer finished writing | Connection through the official API (no typing notice) or Live typing indicator card disabled on the QR Code connection. |
| Customer audio without a transcript | Transcription turned off on the Service tab, or service stopped. On a self-hosted installation, see the Local AI tab. |
| The audio reply switch does not appear | The voice service is not installed on the server. On a self-hosted installation, install it from the Local AI tab. |
| The AI writes the company name wrong | Fill in Company name (as the assistant writes it) in the Knowledge base. |
| The AI greets again in the middle of the conversation | A step instruction asks for a greeting in every reply. The system already blocks repeated greetings; review the instruction so that the greeting is only in the persona. |
Other symptoms in Troubleshooting.