Skip to content

How to Send SurveyMonkey CSAT Surveys from HappyFox Workflows and Capture the Responses

Last updated

This article explains how to send a SurveyMonkey survey automatically when a ticket closes, and how to capture the response back on that same ticket using two linked workflows in HappyFox Workflows.

Note: This article covers survey automation built in HappyFox Workflows, using the SurveyMonkey app's trigger and HappyFox Help Desk actions. It is separate from the native SurveyMonkey integration available directly in HappyFox Help Desk (configured through Smart Rules), which also appends a tracking tag to survey links but does not run inside the Workflows builder. If you're already using the native Help Desk integration, you do not need this setup as well.

Applicable Plans: Available on all plans.


Prerequisites

This setup uses two separate workflows that work together:

  1. Workflow 1 sends the survey when a ticket closes, with the ticket number appended to the survey link.
  2. Workflow 2 listens for the survey response and uses that same ticket number to update the correct ticket.

Workflow 1: Send the Survey When a Ticket Closes

Step 1: Create the workflow

  1. Go to Workflows > Create Workflow.
  2. Name the workflow, for example CSAT Survey — Send.

Step 2: Add the trigger

  1. Click Add Trigger and select the HappyFox Help Desk app.
  2. Choose the Status Changed trigger.
  3. Click Add Trigger Condition and set the condition to Status Change To Name equals Closed.

The Status Changed trigger, with Add Trigger Condition below it and the available condition fields — Status Change From Id, Status Change From Name, Status Change To Id, and Status Change To Name.

Note: The Status Changed trigger fires on every status transition on a ticket, in either direction. The trigger condition on Status Change To Name is what narrows this down to only the transition into Closed, so the survey isn't sent every time an agent updates status for another reason.

Step 3: Add the Add Reply action

  1. Click Add Action and select Add Reply.
  2. Write the survey invitation message, for example: "Thank you for contacting support. We'd appreciate your feedback."
  3. Insert the survey link, appending the Ticket ID merge field as a query parameter so the response can be matched back to this ticket:
https://www.surveymonkey.com/r/example?c={{Ticket ID}}

Note: Any field can be appended this way, not just the ticket number — for example, contact email or ticket priority — as long as the receiving workflow reads the same field back out of the SurveyMonkey payload.

  1. Click Save and Test.

Step 4: Enable the workflow

  1. Toggle the workflow on.

Your survey now goes out automatically whenever a ticket is closed, with the ticket number embedded in the link.


Workflow 2: Capture the Survey Response on the Ticket

Step 1: Create the workflow

  1. Go to Workflows > Create Workflow.
  2. Name the workflow, for example CSAT Survey — Capture.

Step 2: Add the trigger

  1. Click Add Trigger and select the SurveyMonkey app.
  2. If SurveyMonkey is not already connected, click Authorize Survey Monkey, sign in to your SurveyMonkey account, and grant the requested permissions.

The Survey Monkey app page, showing its single available trigger (Survey Response Completed) and the Authorize Survey Monkey button.

  1. Select the Survey Response Completed trigger.

Note: SurveyMonkey currently provides a single trigger, Survey Response Completed. To scope the workflow to one specific survey, select that survey when configuring the trigger, rather than relying on a separate trigger type.

  1. Choose the specific survey this workflow should listen to from the list of surveys.
  2. Click Save and Test, then submit a real test response in SurveyMonkey and click Try Again to pull in the payload.

Step 3: Confirm the ticket number is present in the payload

  1. Open the trigger step and locate the value that corresponds to the c parameter appended to the survey link in Workflow 1 — this is the ticket number for the ticket that received the survey.

Warning: If the merge field used in Workflow 1 is later renamed or removed, the ticket number stops being appended to new survey links, and this workflow can no longer match new responses to a ticket. Any change to that field should be tested in both workflows.

Step 4: Log the response on the ticket

  1. Click Add Action and select Add Private Note.
  2. Insert the survey question and answer values from the trigger payload into the note body.

Step 5: Store the rating in a custom field

  1. Click Add Action and select Set Ticket Custom Fields.
  2. Select the ticket custom field that stores the CSAT score, and map it to the score value from the trigger payload (1–5, from the survey's score dropdown question).
  3. Select the ticket custom field that stores CSAT comments, and map it to the comments value from the trigger payload (from the survey's comments text box question).

Note: This assumes the survey has two questions: a score field using a 1–5 dropdown, and a free-text comments field. If your survey structure differs, match each custom field to the corresponding question in the trigger payload instead.

Step 6: Notify the support manager on a low score

  1. Click Add Action and select Filter Tickets, and set the condition to check whether the CSAT score is 1 or 2.
  2. Inside the low-score branch, click Add Action and select Add Reply, and configure the email to notify the support manager.

Step 7: Enable the workflow

  1. Toggle the workflow on.

Once enabled, every survey response is logged on its originating ticket, the rating is stored as a custom field, and low scores automatically alert the support manager.

Next, see how to use merge fields and dynamic variables to reference other ticket or payload fields in either workflow, or how to use Run History to debug workflow issues if a response isn't matching back to the expected ticket.