Turn Amazon SQS support messages into HubSpot tickets
Every 10 minutes, drain your support queue on Amazon SQS and open a properly triaged HubSpot ticket for every new customer message.
Every 10 minutes, drain the inbound support queue on Amazon SQS and turn each waiting customer message into a HubSpot ticket.
Call Amazon SQS Receive Message on the designated support-inbox queue URL, using WaitTimeSeconds for long polling and requesting up to 10 messages per pass. For every message that comes back, parse the JSON body to extract the customer email, subject, and message text.
Before opening a ticket, check whether the sender already exists in HubSpot by looking them up by email. If the contact is not already known, call HubSpot Create Contact first with the email and any name you can pull from the payload. Then call HubSpot Create Ticket with a clean drafted subject line, a plain-English summary of what the customer is asking for, the pipeline stage set to New, and an inferred priority: URGENT when the message contains outage or refund language, HIGH when it is a billing question, and MEDIUM for everything else. Associate the ticket with the contact you just found or created.
After the HubSpot ticket has been created successfully, call Amazon SQS Delete Message using the ReceiptHandle from the original message so the same request is never processed twice. If parsing a message fails or the ticket cannot be created, do not delete the message. Leave it in the queue and let the SQS visibility timeout return it for a retry on a later run.
The cron cadence, queue URL, HubSpot ticket pipeline and default owner, and the priority classification rules should all be user-configurable inputs on the workflow.
Additional information
What does this prompt do?
- Empties your support inbox queue on a schedule so no customer message sits waiting for a human to spot it.
- Reads each message, works out the customer's email, subject, and what they need, then opens a HubSpot ticket already tagged with a fair priority.
- Creates a new HubSpot contact automatically when the sender's email is not already in your CRM.
- Only removes a message from the queue after its ticket is safely created, so a mid-run failure just retries instead of losing the request.
What do I need to use this?
- An AWS account with an Amazon SQS queue that your support channels write to
- The queue URL for the support inbox you want drained
- A HubSpot login with permission to create contacts and tickets, on a plan that includes the tickets pipeline
How can I customize it?
- Change how often the workflow runs, for example every 5 minutes for busier queues or every hour for quiet ones
- Tune the priority rules, for example treating any mention of 'downtime' or 'data loss' as urgent
- Point new tickets at a different pipeline, opening stage, or default owner in HubSpot
Frequently asked questions
Will the same customer message ever get two tickets?
What happens if a message is not valid JSON?
Do I need a specific HubSpot plan?
How is priority decided?
Can I add Slack alerts or an auto-reply on top of this?
Related templates
Stop letting support messages sit in a queue.
Give your team a clean HubSpot ticket for every incoming customer message, already summarized and tagged with priority.