Skip to content

Channels Overview ​

Priya, a customer of Acme Support, starts a chat on the website, texts the next morning, then calls in the afternoon. Each time she reaches the same agent, and the agent recognises her. That's what channels give you. Your customers can reach your agent on web chat, SMS, WhatsApp, email or voice, and you build the agent once.

This page is for admins like Asha who are deciding which channels to accept. By the end you'll know how channels fit together. Every channel reaches the same agent. A trigger decides which messages start it. And on email, SMS and WhatsApp, a sender node is what lets the agent answer.

One agent, every channel ​

You build one AI Agent, and it serves every channel you connect to it. The same personality, model, tools, knowledge and memory apply whether the customer is on your website, texting, on WhatsApp, emailing or calling. You don't build a separate "WhatsApp agent" and "web agent". You add a trigger for each channel you want to accept and connect them all to the same AI Agent node.

The triggers for inbound channels are Web Chat, WhatsApp, SMS, Email and Phone Call. Pick them from the canvas + → Triggers. Each one watches a business contact you choose, such as a WhatsApp number or an inbound email address, so one number or address routes to one agent.

Replying: web and voice answer inline, messaging needs a sender ​

How the agent's answer gets back to the customer depends on the channel.

  • Web chat and voice calls reply inline. The answer appears in the chat window or is spoken on the call. There's nothing extra to add.
  • Email, SMS and WhatsApp need a sender node. The agent only replies on these channels if the matching sender is connected to the AI Agent's Action port: an Email Sender, SMS Sender or WhatsApp Sender. Without one, an inbound email, SMS or WhatsApp message still starts the agent (useful for an agent that only reads and files messages), but nothing is sent back.

The canvas warns you when an AI Agent has an email, SMS or WhatsApp trigger but no matching sender. If you publish anyway, the conversation records each reply that was not sent, so you can see why the customer didn't get it.

On each sender you choose Send from (the business number or address the message comes from), Send to (the person in this conversation, a fixed recipient, or let the AI decide) and What to send. See Messaging actions.

How an inbound message reaches your agent ​

Every text channel goes through the same steps before the agent sees the message:

De-duplication runs first. Messaging providers sometimes deliver the same message twice: email forwarders re-send, and SMS and WhatsApp providers retry. Perfox recognises the repeat and drops it, so one customer message never gets two AI replies. There's nothing to configure.

No matching trigger means no reply. If no published agent has a trigger watching that number or address, the message isn't answered. There's no catch-all default agent. When an agent "isn't answering", check that it's published and that its trigger watches the right business contact.

Cross-channel identity ​

Perfox recognises the same person on every channel. When a message arrives, it matches the customer by phone number, then email, then WhatsApp identity before creating a new record. Phone numbers are normalised to one international format, so the same number always matches however it's written. One person on web, WhatsApp, phone and email is one customer, not four.

If that customer already has an open conversation, a message on a new channel joins it, and the channel is added to the conversation. If the earlier conversation has closed, a new one starts, but the agent still remembers the customer. A visitor with no identifying details, such as an anonymous website visitor, stays separate until they identify themselves.

What Priya sees ​

Setup. Asha runs Acme Support. She built one AI Agent, connected a Web Chat trigger and an SMS trigger to it, and put an SMS Sender on the agent's Action port so it can text back.

Action. On Monday, Priya opens the website chat:

Priya: Can I change the delivery address on my order?

Acme agent: Yes. Changes are possible until the order ships. Would you like me to help with that now?

On Tuesday she texts Acme's number:

Priya (SMS): Is it too late to change that address?

Acme agent (SMS): Not yet, Priya. Your order hasn't shipped. What's the new address?

What just happened. Perfox matched Priya's phone number, so both messages belong to the same customer and the agent picked up the thread. The SMS reply went out because the SMS Sender was connected. Without it, Priya's text would have reached the agent but received no answer.

Voice ​

Voice calls reach the same agent through a Phone Call trigger (phone calls over your connected Plivo number) or the web chat's voice button (browser voice, included and managed by Perfox). You set up the voice on the AI Agent's AI Model sub-node, in its Voice agent model section:

  • Live: one speech-to-speech model, such as Gemini Live or OpenAI Realtime, listens and speaks in a single step. You choose the model and a voice.
  • Pipeline: separate Speech-to-text, a Voice brain model and Text-to-speech, with options such as Sarvam and ElevenLabs. This suits Indian languages and gives you a wide choice of voices.

The agent's personality, tools and knowledge are the same on a call as in chat. See Voice (Phone) and Voice Providers.

You can now … ​

You can pick the channels your customers use, connect a trigger for each, add a sender wherever the agent needs to reply by email, SMS or WhatsApp, and know that one agent with one shared identity serves all of them.