AI-triage Typeform survey responses into HubSpot and Slack
Every new Typeform response gets read by an open-source AI, logged as a HubSpot contact note, and escalated to Slack when it looks negative or urgent.
Build me a feedback-triage agent that runs every time a customer submits a new response to my Typeform survey.
Trigger: Typeform webhook for new responses on a form I will specify.
For each response, do the following in order:
1. Extract the respondent's email, name (if collected), and all free-text answers from the Typeform payload, along with a link back to the response in Typeform.
2. Call Fireworks AI "Create Chat Completion" with a small open-source instruct model (default to a Llama or Qwen 7B/8B instruct model on the OpenAI-compatible chat endpoint, with JSON-mode output requested). Pass the free-text answers and ask the model to return a strict JSON object with these fields: sentiment (one of "positive", "neutral", "negative"), urgency (one of "low", "medium", "high"), topic (one of "billing", "product", "onboarding", "integration", "other"), and summary (a single sentence summarizing the customer's feedback). Hardcode that topic enum in the prompt; do not let the model invent new tags.
3. Call HubSpot "Search Contacts" using the respondent's email as the filter.
4. If a HubSpot contact is found, call HubSpot "Create Note" associated with that contact. The note body should include the one-sentence summary, the sentiment, the urgency, the topic tag, and a link back to the Typeform response.
5. If sentiment is "negative" OR urgency is "high", call Slack "Send a Message" to a channel I will specify (default #cx-escalations). The message should include the customer's name (or email if no name was collected), the one-sentence summary, the sentiment and urgency, the topic tag, a link back to the Typeform response, and the HubSpot contact link if a contact was found in step 3.
If no HubSpot contact matches the email, skip step 4 but still run the Slack escalation in step 5 whenever sentiment is negative or urgency is high. If sentiment is positive or neutral AND urgency is low or medium and a contact exists, the workflow ends after the HubSpot note with no Slack ping.
Integrations: typeform, fireworks-ai, hubspot, slack.
Additional information
What does this prompt do?
- Reads every new Typeform survey response and tags it with sentiment, urgency, topic, and a one-sentence summary.
- Logs the verdict as a note on the matching HubSpot contact so the feedback lives next to the customer record.
- Pings your customer experience channel in Slack the moment a response looks negative or high urgency.
- Uses a small open-source model on Fireworks AI so high response volume doesn't blow up your AI bill.
What do I need to use this?
- A Typeform account with the customer survey you want to triage.
- A Fireworks AI account with billing set up.
- A HubSpot login with access to your contacts.
- A Slack workspace and a channel where you want escalations to land, for example #cx-escalations.
How can I customize it?
- Change which Slack channel gets pinged, or only escalate negative responses and ignore the high urgency ones.
- Add or rename topic tags to match your product, for example swap integration for API or add pricing.
- Point it at a larger Fireworks model for richer summaries, or stick with a small one to spend less per response.
Frequently asked questions
Do I need to write any prompts or train a model?
What happens if the respondent isn't already a HubSpot contact?
Will this work for any Typeform, not just NPS?
Why open-source AI instead of GPT-4 or Claude?
Can I send escalations somewhere other than Slack?
Stop letting unhappy survey responses slip through.
Connect Typeform, Fireworks AI, HubSpot, and Slack once, and Geni triages every new response in seconds.