Send post-resolution email surveys campaign

With Qwary's Zendesk integration, you can easily send personalized post-resolution surveys to your customers via separate emails. Tailor surveys based on agents, departments, customer groups, languages, and ticket types, ensuring targeted feedback collection and avoiding generic surveys for everyone.

Create a survey and add questions. Once done, activate the survey.

Click Project --> New Project and select a template or start from scratch. Qwary provides a wide range of question types to choose from when adding questions to your survey, including multiple-choice, rating, short answer, picture choice, ranking, form, slider, multiple choice grid, rating grid, Net Promoter Score, and image upload. Once questions are added, activate the survey.

Create a workflow in Qwary.

  1. Go to Workflows --> Create new workflow --> Select Event-based workflow, enter workflow name, and click 'Create.'

  2. Click 'Add Trigger' and select the survey created in the first step

  3. Click 'Add Task' and select 'Zendesk Survey Campaign - Survey customers automatically when a ticket’s status changes in Zendesk.'

  4. Compose email

    • Enter from name

    • Enter reply to email address(optional)

    • Enter subject

    • Click 'Edit this message' to edit the message—Toggle 'Embed First Question' to embed the first question in the email body. Email for the first question is applicable when you have NPS, Rating Question, or multiple choice question as the survey's first question.

    • Select schedule

      • Send email immediately - Check this option to send a survey invitation immediately when the case/opportunity is closed or a custom SOQL Query is evaluated true.

      • Send an invite with a delay - Check this option to send a survey invitation later after the case/opportunity is closed, or a custom SOQL Query is evaluated as true.

      • Reminder - Select this option to send a reminder email if participants have yet to respond to the original invitation.

        • Enter days to wait before sending a reminder email.

        • Enter reminder subject

  5. Click 'Save' to save the task

  6. Copy webhook URL from the task

Configure webhook in Zendesk

  1. Log into your Zendesk account and open Zendesk admin center→ Apps and Integrations → Webhooks and click on add webhook button.

  1. Select “Trigger or Automation” and click 'Next'.

  2. Add below details

    1. Give a name and description.

    2. Paste the webhook url from the second step.

    3. Keep the method as Post and request format as JSON.

    4. Keep authentication as none

    5. Select a custom test and click the “send test” button to test a webhook.

    6. Click 'Finish Setup'

  3. Ignore the below warning and click "Leave without warning"

  4. Qwary webhook is now active.

Setup Trigger in Zendesk

  1. Open Zendesk admin center → Objects and rules → Business rules → Triggers and click on “Add trigger.”

  2. Enter trigger information

    • Trigger name: Add contact to email campaign

    • Trigger description: This trigger adds contacts to the email campaign.

    • Select “Qwary Email Campaign” from the category. If the “Qwary Email Campaign” does not exist, create a new category.

    • In the condition select “ticket status,” it is “closed or solved.” If you select solved, you avoid collecting duplicate survey invite for a ticket, as it will be called only when the ticket closes

    • Add Action: select “notify active webhook” and select “Qwary ticket webhook” and then populate JSON Body with below.

    • Add Action: select “notify active webhook” and select “Qwary ticket webhook” and then populate JSON Body with below.

{
  "campaign_id" : "<Campaign unique id>",
  "current_user" : {
    "details" : "{{current_user.details}}",
    "email" : "{{current_user.email}}",
    "external_id" : "{{current_user.external_id}}",
    "first_name" : "{{current_user.first_name}}",
    "language" : "{{current_user.language}}",
    "name" : "{{current_user.name}}",
    "notes" : "{{current_user.notes}}",
    "phone" : "{{current_user.phone}}",
    "organization" :{
        "details" : "{{current_user.organization.details}}",
        "name" : "{{current_user.organization.name}}",
        "notes" : "{{current_user.organization.notes}}"
    }
  },
  "satisfaction":{
    "current_comment" : "{{satisfaction.current_comment}}",
    "current_rating" : "{{satisfaction.current_rating}}"
  },
  "ticket" : {
    "id" : "{{ticket.id}}",
    "account" : "{{ticket.account}}",
    "cc_names" :"{{ticket.cc_names}}",
    "ccs" : "{{ticket.ccs}}",
    "current_holiday_name" : "{{ticket.current_holiday_name}}",
    "description" : "{{ticket.description}}",
    "due_date" : "{{ticket.due_date}}",
    "external_id" : "{{ticket.external_id}}",
    "latest_comment_html" : "{{ticket.latest_comment_html}}",
    "latest_public_comment_html" : "{{ticket.latest_public_comment_html}}",
    "priority":"{{ticket.priority}}",
    "requester_field" : "{{ticket.requester_field}}",
    "status" : "{{ticket.status}}",
    "tags" : "{{ticket.tags}}",
    "ticket_field_ID" : "{{ticket.ticket_field_ID}}",
    "ticket_field_option_title_ID" : "{{ticket.ticket_field_option_title_ID}}",
    "ticket_type" : "{{ticket.ticket_type}}",
    "title" : "{{ticket.title}}",
    "url" : "{{ticket.url}}",
    "via" : "{{ticket.via}}",
    "group" : {
      "name" : "{{ticket.group.name}}"
    },
    "assignee" :{
      "email" : "{{ticket.assignee.email}}",
      "first_name" : "{{ticket.assignee.first_name}}",
      "last_name" : "{{ticket.assignee.last_name}}",
      "name" : "{{ticket.assignee.name}}"
    },
    "brand" : {
      "name" : "{{ticket.brand.name}}"
    },
    "organization" :{
        "details" : "{{ticket.organization.details}}",
        "external_id" : "{{ticket.organization.external_id}}",
        "name" : "{{ticket.organization.name}}",
        "notes" : "{{ticket.organization.notes}}"

    },
    "requester" : {
      "details" : "{{ticket.requester.details}}",
      "email" : "{{ticket.requester.email}}",
      "external_id" : "{{ticket.requester.external_id}}",
      "first_name" : "{{ticket.requester.first_name}}",
      "language" : "{{ticket.requester.language}}",
      "last_name" : "{{ticket.requester.last_name}}",
      "name" : "{{ticket.requester.name}}",
      "phone" : "{{ticket.requester.phone}}"
    }
  }
}

Integration is now configured. When a ticket is solved, the ticket requester will receive an email.

Last updated