Skip to main content

Freshservice integrations

Send Simplesat surveys from Freshservice and get each rating back on its ticket and requester.

A Simplesat survey can reach your requesters inside a Freshservice email, such as a canned response or the email a scenario automation sends when it resolves a ticket. A Freshservice workflow can also have Simplesat email the survey when a ticket closes. You don't need to connect Freshservice to paste survey code into a Freshservice email.

Connecting Freshservice lets you switch on integrations that write each response back to Freshservice and bring the ticket's details into Simplesat.

What the Freshservice integrations do

The Freshservice page in Simplesat lists its integrations under Survey integrations and Ticket integrations. You switch each one on separately with Activate integration.

Integration

Listed under

What it does

Where it shows

Update requester custom fields with rating details

Survey integrations

Writes rating details to the fields you choose on the Freshservice requester

The requester in Freshservice

Create follow-up tickets from feedback

Survey integrations

Opens a new Freshservice ticket from the response

A new ticket in Freshservice

Pull ticket details

Ticket integrations

Adds the ticket's details, the requester and the agent to the response

The response, in Simplesat

Add notes to rated tickets

Ticket integrations

Adds the response to the ticket as a private note

The ticket

Update ticket custom fields with rating details

Ticket integrations

Writes rating details to the ticket fields you choose

The ticket

Update ticket tags with rating and sentiment

Ticket integrations

Tags the ticket with the rating and sentiment

The ticket

Writing feedback back, and mapping the fields explains how Survey integrations differ from Ticket integrations.

The Ticket integrations run only on surveys connected to Freshservice, and only for responses that came in with a Freshservice ticket ID. A survey is connected to Freshservice when:

  • its delivery method is External email embed with the Freshservice option, or

  • it's an Event-based or Web-embed survey with Connected service set to Freshservice.

Note: If we've changed one of your Freshservice integrations for you, it can work differently from what's described here. Contact us to check what yours does.

Before you start

The Freshservice integrations are available on every Simplesat plan. In Simplesat, you need the Manage integrations permission to connect Freshservice and switch integrations on. Owner and Admin have it by default.

In Freshservice, you connect with an agent's API key, and from then on the integrations act as that agent. Integration security, permissions and data flow sets out what a connected tool can read and write.

Use the key of an agent who can add notes to tickets, edit tickets and requesters, and create tickets, and who will keep their Freshservice access.

Connect Freshservice

  1. In Freshservice, click your profile picture at the top right and go to Profile settings. Copy your API key from the right side of the page, below the change password section. If you don't see it there, ask your Freshservice admin.

  2. In Simplesat, go to the Integrations page, open Freshservice and click Authenticate.

  3. In Subdomain, enter the part of your Freshservice address before .freshservice.com. For acme.freshservice.com, enter acme. In API Key, paste the key. Don't leave spaces before or after either one.

  4. When the page shows Authenticated with Freshservice, click Activate integration on each integration you want, then fill in its settings.

Freshservice Profile settings with Your API Key in the right sidebar, its copy button and Reset API Key

Before you rely on an integration, put a real ticket through it by following Testing an integration end to end.

Send surveys from Freshservice

No integration on the Freshservice page sends the survey. With Freshservice, the survey can reach your requesters:

  • Inside a Freshservice email. You paste the survey into an email Freshservice already sends, and Freshservice decides when it goes out. It goes out every time that email does.

  • From Simplesat, when a ticket closes. A Freshservice workflow asks Simplesat to email the survey. The survey's own delay and suppression settings control when it arrives and how often the same requester gets it.

To compare these with the other ways Simplesat sends surveys, read Choosing a survey delivery method.

Freshservice emails

  1. Create or open the survey and choose External email embed.

  2. Under Choose where to add your survey, choose Freshservice.

  3. On Publish, click Generate embed code.

  4. Choose Visual and click Copy survey.

  5. In Freshservice, paste the survey into the email that should carry it, and save. Any of these work:

    • a canned response: Admin → Canned responses → New Canned response

    • a scenario automation that resolves the ticket and emails the requester: Admin → Scenario Automations → New Rule, with the actions Set Status as Resolve and Send Email to Requester

    • your signature: Profile Settings → Signature

To test it, create a ticket with yourself as the requester, send yourself the email and click a rating.

The Freshservice Admin page with Scenario Automations and Canned Responses under Helpdesk Productivity

A Freshservice Add Canned response with the survey pasted into Message under How did we do?

A Freshservice scenario automation whose actions are Set Status as Resolved and a Send Email to action, with the survey pasted into the email Body

Freshservice Edit Profile with the survey pasted into Signature below the agent's sign-off

The survey code contains Freshservice placeholders. Placeholders and merge fields explains how placeholders work in every tool.

Freshservice fills in the placeholders when it sends the email, so each response arrives already tied to its ticket, requester and agent:

What the code carries

Freshservice placeholder

Ticket ID

{{ticket.original_id}}

Ticket subject

{{ticket.subject}}

Customer email

{{ticket.from_email}}

Customer ID

{{ticket.requester_id}}

Customer first name

{{ticket.requester.firstname}}

Customer last name

{{ticket.requester.lastname}}

Company name

{{ticket.requester.company_name}}

Team member email

{{ticket.agent.email}}

Team member ID

{{ticket.agent.id}}

Team member first name

{{ticket.agent.firstname}}

Team member last name

{{ticket.agent.lastname}}

Group, impact, priority, source, status, subcategory, type, urgency and the ticket's link, saved as ticket fields on the response

{{ticket.group.name}}, {{ticket.impact}}, {{ticket.priority}}, {{ticket.source}}, {{ticket.status}}, {{ticket.sub_category_def}}, {{ticket.ticket_type}}, {{ticket.urgency}}, {{ticket.url}}

Simplesat email when a Freshservice ticket closes

With this route, a Freshservice workflow calls the survey's endpoint when a ticket closes, and Simplesat sends the survey email. The workflow's conditions decide which tickets get a survey. The survey's own Delay, in hours, and its Suppression, in days per customer, still apply.

The survey email Simplesat sends when the ticket closes, with the ticket number and How did we do? with three ratings
  1. In Simplesat, create the survey with Direct email delivery → Event-based.

  2. On its Delivery subtab, set Connected service to Freshservice so the Ticket integrations run on its responses. Freshservice appears in that list once it's connected. Copy the Endpoint and the Request body.

  3. On Admin → API keys, create a key with Full access, or Custom with responses:write.

  4. In Freshservice's Workflow Automator, create a ticket workflow whose event is the ticket's status changing from Any Status to Closed. Choose Resolved instead if you want the survey to go out when the ticket is resolved.

  5. Add an Action → Trigger Webhook, and set it up like this:

Setting

Value

Request Type

POST

Callback URL

The survey's Endpoint

Credentials

Inline Credential, with Authentication Type set to No Auth

Custom Headers

Ticked, with the key X-Simplesat-Token and the Simplesat API key from step 3 as the value

Encoding

JSON, then Advanced

Content

The survey's Request body, with its example values replaced by Freshservice placeholders through Insert Placeholder. Include the requester's email and the ticket ID. Without the ticket ID, the Ticket integrations can't write to the ticket

  1. Save and activate the workflow.

A Freshservice ticket workflow whose event is Status is changed from any status to closed, followed by a Trigger webhook action

A Freshservice Trigger Webhook action filled in with the survey's endpoint, the X-Simplesat-Token header and the request body

The same Trigger Webhook action further down, with Custom headers ticked, the key X-Simplesat-Token, and Encoding set to JSON and Advanced

The Trigger Webhook action's Content box with the request body's customer name and email and the ticket ID and subject set to Freshservice placeholders

Each email Simplesat sends shows on the survey's Email activity. If one doesn't arrive, work through When a survey does not send.

Feedback in Freshservice

Simplesat waits at least five minutes after a response arrives before it writes to Freshservice, and it writes again whenever the response changes. The timing and the Field mapping settings are covered in more depth in Writing feedback back, and mapping the fields.

You can limit each of these integrations to the surveys you choose under When should this integration run?

Add notes to rated tickets

Each rated ticket gets the response as a private note. The note starts with the customer's name, the sentiment and the survey, with links to the customer, the response and the survey in Simplesat. It then lists every question and answer, with the rating shown as its emoji.

The note is posted as the agent whose API key connected Freshservice. If the response changes later, for example when the customer answers another question, a second note is added.

Update ticket tags with rating and sentiment

Simplesat tags the rated ticket with its rating and sentiment:

  • simplesat_rating_ followed by the rating, such as simplesat_rating_4

  • simplesat_sentiment_positive, simplesat_sentiment_neutral or simplesat_sentiment_negative

A Freshservice ticket's Tags field with simplesat_sentiment_positive and simplesat_rating_9

When the rating changes, the old Simplesat tags come off and the new ones go on. The ticket's other tags aren't touched.

Update ticket custom fields with rating details

This integration writes the response's details, such as the rating, sentiment and comment, to the ticket fields you choose in its Field mapping. Nothing is written until you map at least one field.

A Freshservice ticket's fields with Rating 2, Sentiment negative and the customer's Comment filled in by Simplesat

The field list is loaded from Freshservice each time you open the page. If you've just created a field in Freshservice, reload the page to see it.

Update requester custom fields with rating details

Simplesat matches the response's customer email to a Freshservice requester. It then writes the response's details, such as the latest rating, to the requester fields you choose in its Field mapping.

A Freshservice requester's profile with Latest CSAT 3 and Latest CSAT comment filled in by Simplesat

If no requester has that email, or the response has no email, nothing is written.

Ticket, requester and agent details in Simplesat

A response's ticket, customer and agent first come from the placeholders Freshservice fills in. Pull ticket details then updates them from the ticket itself. Attribution: linking feedback to tickets, customers and agents explains how Simplesat makes these connections.

Pull ticket details runs as soon as a response arrives, and again whenever it changes. It reads the ticket and adds these to the response:

  • the ticket's subject, plus its type, priority, source, impact, subcategory and urgency as ticket fields

  • the requester's name, email and Freshservice requester ID

  • the ticket's agent, if it has one, as a team member with the role Agent, with their name, email and Freshservice agent ID

A response's Ticket panel with Ticket ID, Ticket subject, Team member and Agent, and its Customer panel with Name, Email and Company

Each time it runs, it replaces the response's ticket fields. When the ticket has an agent, it replaces the response's team members too. So if you change the team member on a response in Simplesat, your change lasts only until the pull runs again.

Follow-up tickets in Freshservice

Create follow-up tickets from feedback opens a new Freshservice ticket from a response, for the sentiments you switch on in its settings. Creating a follow-up ticket from feedback covers follow-ups in general.

The new ticket:

  • has the subject New sentiment feedback from customer name from ticket #ticket ID, for example New negative feedback from Ana Lopez from ticket #1042

  • has a description with links to the customer, the response and the survey, followed by every answer

  • opens with status Open and priority Medium, with the customer as the requester

A follow-up ticket in Freshservice titled New positive feedback from Josh Walker from ticket #12234, with links to the customer, the feedback and the survey, then each answer

It's created once, when the response arrives. The subject includes the rated ticket's number, but the two tickets aren't linked.

Heads up: If your Freshservice tickets have required fields, give each one a value in the integration's Field mapping. Otherwise Freshservice won't create the ticket.

Change the Freshservice account or API key

To connect a different Freshservice account, or to use another agent's API key:

  1. Click Revoke access.

  2. Click Authenticate and enter the subdomain and the new key.

  3. Any integration that was on before switches back on by itself, with its settings. Check that each one you use shows Deactivate integration. If one is still off, click Activate integration.

Heads up: Responses that arrive after you click Revoke access and before you click Authenticate aren't written to Freshservice, so do the steps in one go.

The survey code in your Freshservice emails and your workflow webhook keep working throughout, because they don't use the connection.

Reconnect the same way if the agent whose key you used loses their Freshservice access, or if their API key changes. When that happens, the integrations stop working but the page still shows Authenticated with Freshservice.

Troubleshooting

Feedback doesn't show up on my Freshservice tickets

Check each of these:

  • The survey is connected to Freshservice, as described in What the Freshservice integrations do. The Ticket integrations only run on connected surveys.

  • The response came in with the Freshservice ticket ID. A survey in a Freshservice email carries the ID when Freshservice fills in {{ticket.original_id}}. A survey sent by the workflow webhook carries it when the request body includes the ticket ID.

  • At least five minutes have passed since the response arrived.

  • The integration shows as active, and its When should this integration run? setting includes the survey. After Revoke access and Authenticate, any that was on before switches back on by itself. If one is still off, click Activate integration on it.

If none of these explains it, send us the response's link.

A field I created in Freshservice isn't in Field mapping

The field list is loaded from Freshservice each time you open the page, so reload the page. If the field still isn't there, check that the agent whose API key connected Freshservice can see it.

Follow-up tickets aren't created in Freshservice

If your Freshservice tickets have required fields, Freshservice won't create a ticket that leaves any of them empty. Give each required field a value in Field mapping under Create follow-up tickets from feedback. Also check its settings: it only runs for the sentiments switched on there.

My responses are credited to the wrong agent

Two things decide the agent. The survey code carries the agent who was assigned when Freshservice sent the email. Pull ticket details then credits whoever the ticket is assigned to in Freshservice when it runs, which is as soon as the response arrives and again whenever the response changes. If you change the team member on the response in Simplesat, your change lasts only until the pull runs again.

Freshservice won't authenticate

In Subdomain, enter only the first part of your address, such as acme for acme.freshservice.com. Then copy the API key again from Profile settings in Freshservice. Make sure there's no space before or after either one.

I see two private notes for one response

Add notes to rated tickets runs when a response arrives and again when it changes, for example when the customer answers another question or changes their rating. Each run adds its own note.

My Freshservice integrations stopped working, but the page still says Authenticated with Freshservice

Simplesat doesn't check the connection after you connect. If the agent whose API key you used loses access, or the key changes, the integrations fail while the page still shows Authenticated with Freshservice. Integration error messages and what they mean explains what the page does show.

To fix it, click Revoke access, then Authenticate with a current key. Any integration that was on before switches back on by itself. Check that each one you use shows Deactivate integration, and click Activate integration on any that's still off.

FAQ

Can Simplesat send the survey automatically when a Freshservice ticket closes?

Yes. Set up a Freshservice workflow that calls the survey's endpoint, as described in Simplesat email when a Freshservice ticket closes. None of the integrations on the Freshservice page send surveys. You can also put the survey in the email a scenario automation sends when it resolves a ticket.

Can my requesters see the notes Simplesat adds?

No. Add notes to rated tickets adds private notes, and only agents can see those.

Do I need to connect Freshservice to put a survey in Freshservice emails?

No. The survey code works on its own. Connecting adds the integrations that write feedback back to Freshservice.

How do I stop a requester from getting the survey too often?

If you use the workflow, set the survey's Suppression on its Delivery subtab. A customer then gets the survey at most once in that many days. A survey inside a Freshservice email goes out with every email that carries it.

Did this answer your question?