Agent setup guide
SMS Inbox Assistant
Reads every text to your Twilio number, finds the customer in HubSpot and drafts a reply for your approval.
What it does
Reads every text to your Twilio number, finds the customer in HubSpot and drafts a reply for your approval.
- Starts from each text received by your Twilio number (checked on your plan's schedule interval).
- AI spots opt-out requests in any wording (STOP, “stop texting me”, “wrong number”…): those get no reply and are posted to Slack so someone updates your do-not-text lists.
- Every other text is matched to the HubSpot contact with that phone number.
- AI drafts a short reply (at most 300 characters) in the customer's language, using only their HubSpot record, the text and the business details you paste in.
- It remembers the last 5 texts and sent replies with each number for 30 days, so a follow-up like “what about Friday?” is understood.
- Urgent texts (something went wrong today, an angry complaint, a threat to cancel) are posted to your Slack channel straight away with the suggested reply.
- Every reply waits in Reviews. Once approved it's logged as a note on the HubSpot contact (when there is one), texted from the same Twilio number and remembered for the next text.
What it needs
- A paid plan (agents run live on paid plans).
- An AI provider key (Settings → AI Providers).
- Twilio (your own account and number), HubSpot and Slack, connected in Settings → Integrations.
- Texting consent and US A2P 10DLC registration for your number are your responsibility (Twilio requires registration to text US numbers from a 10-digit number).
What it doesn't do
- It never sends a reply without a person approving it, and never replies to opt-out requests.
- It isn't instant: Twilio is checked on your plan's schedule interval (every minute on the highest plans).
- Its memory is short: only the last 5 exchanges per number, forgotten 30 days after the last one, and only replies that were approved and sent (not rejected drafts or texts answered outside it). HubSpot notes keep the full history.
- It doesn't create HubSpot contacts for unknown numbers or change do-not-text settings; the team does that from the Slack alert.
- It doesn't book, move or cancel appointments, or take payments; it drafts the reply and a person acts on it.
Availability and plans
Available
Its workflow is built and tested, and every app it needs is live. You can get it and set it up now.
Included free on the Enterprise plan; on other paid plans it's a one-time purchase per workspace (the price is on the Agents page). The Agents page in the app always shows its current status.
Before you start
- A paid plan: agents run live, and the Free plan only runs Dry Runs.
- An AI provider key (OpenAI, Anthropic, Google and more) in Settings → AI Providers. AI usage is billed by your provider.
- These apps, connected in Settings → Integrations: Twilio, HubSpot and Slack.
- The app it watches, connected in Settings → Integrations (the agent starts from an app event).
- About 25 minutes.
Set it up step by step
Get the agent first (buy it, or it's already yours when your plan includes it), then in Agents → My agents press “Set up this agent”. That creates the agent's workflow in your workspace (it counts towards your plan's workflow limit) and opens the canvas with a setup checklist above it. Each item links to the exact place to go and ticks itself off when it's done.
1. Connect your AI provider
The AI steps run on your own key (OpenAI, Anthropic, Google and more). Add one in Settings → AI Providers.
2. Connect Twilio
Connect your Twilio account (Account SID and an API key or Auth Token) in Settings → Integrations → Twilio.
3. Connect HubSpot
Connect the HubSpot account your customers are in (Settings → Integrations → HubSpot).
4. Connect Slack
Connect the Slack workspace your team uses (Settings → Integrations → Slack).
5. Pick your Twilio account and number
Open the trigger and pick your Twilio account and the number customers text; open “Text the reply” and pick the same account.
| Setting | What to enter | In step |
|---|---|---|
| Twilio account (incoming texts) | The Twilio account whose number receives the texts. Pick your connected Twilio account. | “New text to your Twilio number” |
| Your Twilio number | The Twilio number customers text (E.164, e.g. +14155550100). Replies are sent from this number too. | “New text to your Twilio number” |
| Twilio account (replies) | The same Twilio account, used to send the approved reply. Pick your connected Twilio account. | “Text the reply” |
6. Describe your business
Open “Draft the SMS reply” and replace the placeholder with your business details, links and texting rules.
| Setting | What to enter | In step |
|---|---|---|
| Your business details and texting rules | Replace the placeholder with your business name, hours, services, the links the assistant may share and anything it must never say by text. Replies only state facts written here or in HubSpot. It starts as “[DESCRIBE YOUR BUSINESS, HOURS, SERVICES, LINKS YOU MAY SHARE AND YOUR TEXTING RULES HERE]” until you replace it. | “Draft the SMS reply” |
7. Pick your HubSpot account
Open “Find the customer in HubSpot” and “Log a note in HubSpot” and pick your account in each.
| Setting | What to enter | In step |
|---|---|---|
| HubSpot account (lookup) | The HubSpot account the sender is looked up in. Pick your connected HubSpot account. | “Find the customer in HubSpot” |
| HubSpot account (notes) | The same HubSpot account, used to log the note on the contact. Pick your connected HubSpot account. | “Log a note in HubSpot” |
8. Pick the Slack account and channels
Open “Alert the team in Slack” and “Tell the team about the opt-out” and pick your account and channel in each. Invite the app to private channels first (/invite @Fluxo Flow).
| Setting | What to enter | In step |
|---|---|---|
| Slack account | The Slack workspace urgent texts are posted to. Pick your connected Slack account. | “Alert the team in Slack” |
| Slack channel for urgent texts | The channel your front desk or support team watches, e.g. #texts. | “Alert the team in Slack” |
| Slack account | The Slack workspace opt-out requests are posted to. Pick your connected Slack account. | “Tell the team about the opt-out” |
| Slack channel for opt-out requests | The channel where someone updates do-not-text lists (it can be the same channel). | “Tell the team about the opt-out” |
9. Test it with Dry Run
Press Dry Run: the agent runs on sample data with no messages sent and nothing written to your apps.
10. Switch the trigger on
Open the trigger and click “Activate app trigger”: Fluxo Flow starts checking your Twilio number for new texts.
How it works
The agent is a normal workflow with 17 steps (2 AI steps, with a person approving in Reviews). You can open, edit and monitor it like any other workflow.
- New text to your Twilio number — Starts on “New incoming SMS” in Twilio (an app event). Starts a run for each text received by your Twilio number (Twilio is checked on your plan's schedule interval, so it isn't instant).
- Read the text — AI step (runs on your AI provider key). AI spots opt-out requests in any wording, tags the intent and urgency and prepares the sender's number for the HubSpot lookup.
- Asked to stop texts? — Decision: picks the branch to follow. Opt-out requests get no reply: the team is told in Slack instead. Every other text goes on to the HubSpot lookup.
- Tell the team about the opt-out — Slack: Post a message. Branch: Opt-out. Posts the opt-out request to Slack so someone marks the number do-not-text in HubSpot and any other tool you text from. No reply is drafted or sent.
- Opt-out noted — Kept in the run history. The run history keeps the opt-out request.
- Recall the conversation — Recalls what it remembered earlier (memory “sms-inbox-assistant”). Branch: Reply needed. Reads the last 5 texts and replies exchanged with this number (remembered for 30 days after the last one). Nothing is found for a new number.
- Find the customer in HubSpot — HubSpot: Find records. Looks up HubSpot contacts with this phone number (HubSpot's searchable phone number, digits without the country code).
- Draft the SMS reply — AI step (runs on your AI provider key). AI drafts a short reply in the customer's language using only their HubSpot record, the text and your business details (and the earlier texts for context), and writes the note for HubSpot.
- Urgent? — Decision: picks the branch to follow. Urgent texts are posted to Slack straight away; every reply, urgent or not, waits for approval.
- Alert the team in Slack — Slack: Post a message. Branch: Urgent. Posts the urgent text, who sent it and the suggested reply to your channel so a person picks it up now.
- Team alerted — Kept in the run history. The run history keeps the urgent text and the alert.
- Approve the reply — A person approves or rejects it in Reviews (the run waits). Branch: Urgent / Normal. A teammate reads the text and the draft in Reviews, edits it if needed and approves it to send, or rejects it to answer personally.
- In HubSpot? — Decision: picks the branch to follow. Branch: Approved. When the sender is a HubSpot contact, the text and the approved reply are logged on their timeline before sending.
- Log a note in HubSpot — HubSpot: Add a note. Branch: In HubSpot. Adds the text received and the approved reply to the contact's timeline.
- Text the reply — Twilio: Send an SMS. Branch: Unknown number. Sends the approved reply by SMS from the Twilio number that received the text.
- Remember this exchange — Remembers it for later runs (memory “sms-inbox-assistant”, kept 30 days). Saves the text and the reply sent with the earlier ones (the last 5 are kept, for 30 days after the last one). Only replies that were approved and sent are saved.
- Replied — Kept in the run history. The run history keeps the text, the approved reply and Twilio's message id.
Test it with Dry Run
Press Dry Run in the canvas. The agent runs on the sample data stored on its trigger (the “Sample data for Dry Run” box), so you can check every step's output before anything is live. The sample has the same shape as a real event from the app.
Sample data fields
body, from, to, sid, num_media, date_created, direction, status.
- Nothing is sent or written: app actions, emails and Slack posts are simulated, and AI steps don't call your AI provider.
- Approval steps use the Dry Run decision you pick in the step's settings (approved, rejected or timeout), so you can try each branch.
- Memory steps don't read or write stored memory: a recall finds nothing, and a save only shows what it would store.
Go live
- Open the trigger and click “Activate app trigger”: Fluxo Flow starts checking your Twilio number for new texts.
- Activating the app trigger needs the trigger's connected account. The first check only remembers what's already there, so older items don't start runs; the same item never starts two runs.
- The setup checklist adds a “paid plan” item before activation: live runs need a paid plan (the Free plan only runs Dry Runs).
- When every checklist item is done and the trigger is on, the checklist says “Live — this agent is running”. Follow its runs in the workflow's History tab and in Analytics → Agents.
Questions
Does it text customers without a person checking?
No. Every reply waits in Reviews until a teammate approves it. Opt-out requests never get a reply.
Does it remember earlier texts?
Yes, briefly: it remembers the last 5 texts from each number and the replies sent, for 30 days after the last one, and uses them only to understand follow-ups. Only approved, sent replies are remembered. Every approved exchange is also logged as a note on the HubSpot contact.
Troubleshooting
- “No AI provider connected” or a rejected key: connect or fix the key in Settings → AI Providers, then press Test there.
- A checklist item stays unticked: the setting is still empty or still contains its placeholder text. Open the step from the checklist and fill it in.
- An app step fails with “Needs reconnect”: the account's access was revoked or expired. Reconnect it in Settings → Integrations.
- Slack says the app isn't in the channel: in Slack, type /invite @Fluxo Flow in that channel (always needed for private channels).
- No runs start: activate the app trigger with a connected account. Only items created after activation start runs.
- A run shows as paused: it's waiting for someone in Reviews to approve or reject it.
- A step failed: open the run in History and check that step in the Trace tab for the error and what it received.
Generated from the agent's own workflow, so it always matches what the agent does. Last updated .