The transactional email campaign gives you the possibility to survey your contacts based on events triggered in your Freshdesk workspace.

One of the most common scenarios is to send a survey after a ticket was marked as closed in Freshdesk, but you can definitely set up one or more triggers for automations that will fit your business goals.

Follow the step by step tutorial to learn how to configure a transactional email campaign in Retently, and how to connect it to Freshdesk events using a webhook link.

Set up a transactional email campaign in Retently

To create a new campaign, go to the Campaigns page, choose a survey metric (NPS, CSAT, CES, 5-STAR), next select email as your survey channel, and from the dropdown list with campaign types, select the Transactional option.

Assign a survey template

In the campaign editor, start with choosing the survey template that your contacts, who match this campaign, will receive in their Inbox. You can select an existing email template, or create and customize a new one.

Make sure the survey template has your company’s logo, otherwise you will not be able to select and use it.

When everything looks ok, hit the Assign button to add it as the main survey template in your campaign.

Filter your audience

As a rule, your campaign audience will be defined by the Freshdesk event and only the contacts that trigger the event will be surveyed in this campaign.

However, you can apply an additional layer of filters to narrow down your audience.

Let’s assume that you have a Freshdesk trigger that is fired when a ticket is closed, and you are also storing the country of your contacts as a tag. This would allow you to add some extra filters in Retently and survey only the contacts that live in a particular country.

Your audience filters would look as in the example below:

In most cases, there is no need to adjust the audience filters at all. But, if you have to, we recommend checking our article to learn more about the audience segmentation in campaigns or you can request assistance from our support team.

Edit the survey schedule

The first thing to do in the Schedule section is to specify how your surveys will be triggered. Since we are configuring this campaign for Freshdesk, choose this service from the drop-down menu.

NOTE: It’s important to select the needed service because the content on the Setup page will adjust based on your choice. For our goal, we will need a webhook link that will be automatically generated and available for you to copy in the Setup section.

Next, you have three options that will help you configure how and when your surveys will be sent to your campaign’s audience:

  • Sample audience: Choose what percentage of the triggered events will result in a survey being sent. When switched off, all triggered events will result in a survey.

  • Delay survey: Send the survey at a later date from the triggered event. When switched off, the survey will be sent immediately.

  • Throttle survey: Throttle helps avoid over-surveying customers. If a customer has been surveyed recently in this campaign, then any new triggered surveys will be discarded until a specific number of days have passed since the last survey was received. When switched off, customers will be surveyed in this campaign every time they trigger an event. This option won’t affect the schedule in other campaigns.


Reminders will help increase your survey response rate. For instance, if a contact didn't respond to your survey within three days after opening it, our system will send them a reminder email survey. This way, you will be reaching your contacts once more when they might be more likely to answer the survey.

Moreover, you can choose a different survey template for your reminders, with different wording or style, that might be more appealing to your survey respondents. You can create a new email survey template in the Templates section of your campaign or on the Templates page.


In the Notifications section, you can create custom notifications and keep track of your progress.

When creating a new notification you will be asked to choose one or more event types you want to be notified about, the notification frequency (immediately, daily or weekly digest), and the channel (email or Slack).

Don't forget to save your notifications and make sure they are enabled.


In this section, you can create a set of email auto-responders meant to engage with contacts who did not leave any text feedback, left a Detractor score, or simply to ask Promoters to leave their reviews on specific platforms and spread word-of-mouth. Autoresponders will be sent to respondents with a random delay between 5 and 60 minutes from the moment they've answered the survey.


Webhooks allow you to send HTTP requests to another web application every time an event is triggered, be it new feedback, a bounced survey, or an unsubscribed contact. Don't forget to save each created webhook and make sure they're enabled.


In the Setup section, you will find a unique webhook link that will be used to receive contacts' data from Freshdesk and trigger the transactional survey. Make sure to keep this link handy because you will need it soon when configuring the Freshdesk event.

NOTE: If the webhook link is not displayed, then go back to the Schedule section and make sure that Freshdesk is selected in your services drop-down menu.

Activating your campaign

The final step is to activate the transactional email campaign by switching the toggle button ON.

No surveys will be sent just yet because we haven’t connected the campaign to a Freshdesk event. We will do this next!

Set up Freshdesk events for your survey campaign

Set up a Freshdesk automation

Freshdesk automations let you perform a specific action when a support ticket is updated to meet specific criteria.

In this tutorial, we will create an automated rule that calls a Retently webhook link when a ticket is marked as closed.

To create a new automation access the Admin area in your Freshdesk workspace. Find the "Helpdesk productivity" subcategory and click the "Automation" option.

There are three types of automations that you can choose from:

  • Ticket creation: the automation will be actioned when a ticket is created.

  • Time triggers: the automation will be actioned after a certain amount of time has passed since the event was triggered.

  • Ticket updates: the automation will be actioned when a ticket is updated.

For our example, we will access the "Ticket updates" category and will create a new rule.

On the automation building page, set the criteria that your updated ticket should meet. For instance:

Status is changed -> from Any status -> to Resolved

Of course, depending on your requirements, you can configure a different set of rules.

Next, in the "Perform these actions" subcategory choose "Trigger webhook". Now we will have to configure the Retently webhook, which will receive the data when the automation is fired, and will eventually send the transactional survey.

In the “Request type” field, make sure to select the “POST” option, which means that this automation will push data to Retently.

Below, in the URL field, insert the Retently webhook link from the Setup page in your transactional campaign.

Next, in the “Encoding” section, choose the “JSON” option. This ispecifies the format of the data that will be sent to Retently.

Finally, you will reach the “Content” section, where you have to specify what data will be sent to Retently.

There are two options that you can choose from: Simple, and Advanced.

Before choosing any option keep in mind the differences between them:

  • Simple: using this option you will be able to send to Retently only a limited number of default properties such as the contact's name, email address, and tags. Any other properties that you choose will not be added in Retently.

  • Advanced: using this option you will be able to send to Retently any properties that you need. This is a perfect option if you need to pass custom properties and assign them to your audience in Retently for further segmentation.

Below, we will cover how to set up each option.


This option allows you to choose a set of ticket or contact properties that will be sent to Retently. When the automation is triggered, the contact will be created in Retently as a new customer and will include these properties with the corresponding values.

If you decide to use the simple method, then keep in mind that you can only select the following properties:

  • Contact email (this property is mandatory)

  • Contact first name

  • Contact last name

  • Tags

If you need to export more properties in Retently for further data segmentation, then choose the Advanced option.


This option gives you the possibility to export more data to Retently and store it into customer properties.

When “Advanced” is selected, a text input field will appear. In this area, you have to specify what data will be sent to Retently when your Freshdesk event is triggered.

The data in the text field has to be included in a JSON format, consisting of keys (Retently properties) and values (Freshdesk placeholders). Keys are Retently property names where the data will be stored, and values are Freshdesk placeholders that represent the data that will be stored in Retently properties.

For instance, if you want to pass a set of default properties, then your input area will include:

"email": "{{}}",
"first_name": "{{}}",
"last _name": "{{}}",
"tags": "{{ticket.tags}}"

If you need to pass other properties, then you will have to create the custom property in Retently first, and then include its name in the JSON in the text field, along with a corresponding Freshdesk placeholder name.

Let’s say that you want to pass the ticket id when the automation is triggered. You will have to create a new custom property in Retently with the name “ticket_id”.

NOTE: In the next chapter we will discuss details about managing customer properties in Retently and mapping them in the JSON text filed.

After that, you will have to include the property name in the JSON, and assign it the ticket id placeholder from Freshdesk. You can find the names of Freshdesk placeholders here.

Your JSON will look like in the example below:

"email": "{{}}",
"first_name": "{{}}",
"last _name": "{{}}",
"tags": "{{ticket.tags}}",
"ticket_id": "{{}}"

You can pass as many properties as you need and every time the automation is triggered, the contact will be created as a new customer in Retently, the properties will be assigned, and the survey will be sent according to your campaign's schedule. If you already have this contact in Retently, then they will only be updated with the new values stored in properties, and will still receive the survey.

Manage customer props via Freshdesk automations

Using the Freshdesk integration you can assign and update customer properties every time an event is triggered.

Create customer property in Retently

Start with creating a customer property in your Retently account, in the "Props & Tags" category. To create a new one, click the "Create property" button.

A popup will ask you to write the name of the new property (ex: Subscription, Signup date, Product name, etc.) and choose the type of the value that will be stored in the new property.

Retently supports the following four data types:

  • Text: The value will be stored as regular text.

  • Number: This property can store only numbers (this data type also supports numbers with decimals).

  • Date: You can store dates in the MM/DD/YYYY format, or the standard ISO 8601 and RFC 2822 formats.

  • Collection: You can store an array of keywords (ex: "item 1, item 2, item 2").

After you have created the property, it will be available to be added to your JSON text field in the Freshdesk advanced automation option.

Identify the property name

By default, in Retently props are displayed in a user-friendly format, which supports capital letters and spaces. Basically, your property will look exactly as you have written it. This is known as the property's label.

However, dues to technical requirements, when saving the property in our database, we have to transform it in a supported format: all lower-case and with underscores instead of spaces. This is known as the property name.

Whenever you want to manage properties via transactional integrations or our API, you will need to use a property's name, because the label will simply not work.

But it's very easy to figure out what is the name of a property. All you have to do is to make all the letters lower-case and replace spaces with underscores.

Below I will list a few examples so that it's easier to understand how this works:

  • Label: Subscription (name: subscription)

  • Label: Subscription Name (name: subscription_name)

  • Label: This Is A Custom Prop (name: this_is_a_custom_prop)

Assign a property to a customer

After you have identified the property name, all you have to do is to add it to the JSON text field in your Freshdesk automation, as described in the "Set up a Freshdesk automation" chapter above.

After that, every time when the automation will be triggered, the contact will be added as a new customer in your Retently account, and the properties from the JSON field will be assigned, along with the values from the specified Freshdesk placeholders.

Update the value of an assigned customer property

The values in a property that is already assigned to a customer will be updated automatically the next time your automation will be triggered and the contacts will match the automation rules.

Unassign customer property

Every time an automated rule is triggered, the contact's properties will be updated with the new values that will be sent via the Retently webhook. However, if no value is available for a particular property, then the property will be unassigned from the customer's record in Retently.

Did this answer your question?