Triage inbound ClickSend SMS replies into Slack and HubSpot

Every 10 minutes, an agent reads new replies to your ClickSend numbers, classifies each one, routes it to the right Slack channel, and logs it on the HubSpot contact.

Agentic Task
ClickSendSlack BotHubSpotCustomer SupportSalesNotifications & AlertsFeedback TriageLead Enrichment
PromptCreate

Build an agent workflow that triages inbound SMS replies to my ClickSend dedicated numbers. It should run on a cron trigger every 10 minutes.

On each run, use ClickSend Get Inbound SMS to fetch recent inbound messages, filtered to only messages received since the last run. The agent should maintain its own high-water mark (the most recent message id or timestamp it has already processed) so it never reprocesses the same reply. If this is the first run, only look at messages from the last 10 minutes.

For each new message, classify it into exactly one of these labels: sales_question, support_request, appointment_confirmation, opt_out, spam, or unclear. Base the classification on the message body and any obvious signals like STOP or UNSUBSCRIBE keywords for opt-outs.

Then route based on the label using Slack Bot Send a Message:

- sales_question: post to a sales Slack channel with the sender number, the full inbound message body, the classification, and a suggested one-line reply the agent drafts.

- support_request: post to a support Slack channel with the same shape (number, body, label, suggested reply).

- appointment_confirmation: post a short, quiet acknowledgement to an appointments Slack channel or thread.

- opt_out: post to a dedicated opt-outs Slack channel and clearly flag that the sender number should be removed from future campaigns.

- spam: log a low-noise line to an opt-outs or moderation channel and take no other action.

- unclear: post to the support channel and mark it as needing a human to review.

After posting to Slack, look up the sender phone number in HubSpot using Search Contacts (search by phone). If exactly one contact matches, use HubSpot Create Note to record the inbound message body and its classification on that contact. If there is no match or multiple ambiguous matches, skip the HubSpot step for that message and note that in the Slack post.

Ask me for the four Slack channel names or ids up front (sales, support, appointments, opt-outs), and remember them for future runs. Keep messages compact and readable. Never send an outbound reply to the customer automatically. The suggested reply text is only for a human to read in Slack.

Additional information

What does this prompt do?
  • Checks ClickSend every 10 minutes for new inbound replies to your dedicated numbers and only handles ones you have not seen yet.
  • Classifies each message as a sales question, support request, appointment confirmation, opt-out, spam, or unclear reply.
  • Posts sales and support texts to dedicated Slack channels with the sender number, the message body, and a suggested one-line reply.
  • Looks up the sender in HubSpot by phone number and, if there is a match, logs a note on the contact with the message and its classification.
What do I need to use this?
  • A ClickSend account with at least one dedicated number receiving replies.
  • A Slack workspace where you can pick channels for sales, support, opt-outs, and appointment confirmations.
  • A HubSpot account so the agent can search contacts by phone number and add notes to matching records.
How can I customize it?
  • Change how often it runs, for example every 5 minutes for a busy line or every 30 minutes for a slower one.
  • Rename the categories or add your own, such as splitting support into billing and technical.
  • Point each category at different Slack channels or send appointment confirmations to a quiet thread instead of a full channel.

Frequently asked questions

Do I need webhooks set up in ClickSend for this to work?
No. The agent polls ClickSend on a schedule and remembers which messages it has already processed, so you do not need to configure inbound webhooks.
What happens if a texter is not in HubSpot?
The message still gets classified and posted to the right Slack channel. The agent only skips the HubSpot note when it cannot find a matching contact by phone number.
Will opt-outs be handled automatically?
The agent flags opt-outs in a dedicated Slack channel and marks the number as needing removal, so your team has one clear place to unsubscribe them from campaigns.
Can I use this if I only have one Slack channel today?
Yes. You can point every category at the same channel to start, then split them out later as volume grows.
Does this reply to the customer automatically?
No. The agent drafts a suggested one-line reply and shows it in Slack so a human can approve, edit, and send. Nothing goes back to the customer without you.

Stop dumping every SMS reply into one giant Slack channel.

Connect ClickSend, Slack, and HubSpot once, and Geni triages every new text every 10 minutes.