Skip to main content
Set up the Freshservice ticket integration in this order: create a dedicated agent, connect it to Ravenna with OAuth, configure a Freshservice webhook, and enable ticket replication for a channel.

Before you begin

You need:
  • Freshservice administrator access to create an agent and a Workflow Automator workflow
  • Your full FreshWorks URL, such as https://yourcompany.myfreshworks.com
  • Your full Freshservice URL, such as https://yourcompany.freshservice.com
  • Access to the Freshservice workspaces whose tickets you want to sync

1. Create a dedicated Freshservice agent

Create a service account that can sign in to FreshWorks and authorize Ravenna. Use a dedicated email address, such as ravenna-integration@yourcompany.com, so the connection does not depend on an employee’s account.
1

Add the agent

In Freshservice, go to Admin > User Management > Agents, then select New Agent. In a multi-workspace account, you may need to open Global Settings or the relevant Workspace Settings first. Enter the service account’s name and email address, save it, and complete its activation so it can sign in.
2

Grant access to the workspaces and tickets you will sync

Assign the agent an appropriate role in every Freshservice workspace you will connect to a Ravenna channel. It needs access to view, create, and update tickets; view and manage ticket conversations or notes; and read the agents and requesters used for ticket assignment and requester mapping. Grant access across the relevant workspace, rather than only to tickets assigned to this agent. Freshservice’s agent roles and workspace access determine which tickets the account can reach.
3

Save the agent email

You will enter this email in Ravenna and sign in to FreshWorks as this same agent during OAuth authorization.
Use a regular Freshservice agent account for this OAuth connection. Freshservice’s separate integration users cannot sign in to the web portal, so they cannot complete this authorization flow.

2. Connect the agent to Ravenna

1

Open the Freshservice integration

In Ravenna, go to Settings > Integrations, find Freshservice under Ticketing, and select Connect.
2

Enter the connection details

Enter all three values before continuing:
  • FreshWorks Domain: the full URL, including https://, such as https://yourcompany.myfreshworks.com
  • Freshservice Domain: the full URL, including https://, such as https://yourcompany.freshservice.com
  • Agent Email: the dedicated agent’s email address
The two subdomains may differ. Do not enter only the subdomain or add a path after either URL.
3

Authorize the connection

Select Connect to start OAuth. Sign in to FreshWorks with the dedicated agent account, review the requested permissions, and authorize Ravenna. FreshWorks redirects you back to Ravenna when the connection is complete.

3. Configure the Freshservice webhook

The OAuth connection lets Ravenna access Freshservice, but Freshservice needs a Workflow Automator webhook to send ticket changes to Ravenna. Without this workflow, changes made in Freshservice will not sync inbound.
1

Copy the webhook signing secret from Ravenna

In Settings > Integrations, select Manage for Freshservice, open the ⋯ menu, and select Configure. Copy the Webhook Signing Secret field. Keep this value private and use it as the webhook’s Secret header below.
2

Create an event-based ticket workflow in Freshservice

In Freshservice, go to Admin > Automation & Productivity > Workflow Automator. In a multi-workspace account, choose Global Settings for a global workflow or the relevant Workspace Settings for a workspace-level workflow. Create a new Ticket workflow and choose Event Based Workflow. Name it, for example, Ravenna Sync.
3

Select the ticket events

In the workflow’s Event block, select these events under When an event is performed:
  • Ticket is raised
  • Ticket is updated
  • Reply is sent
  • Note is added (any type)
These events let Ravenna detect new tickets, ticket updates, replies, and notes.
4

Add the webhook action

Add an Action block and select Trigger Webhook. Configure it with:
  • Request type: POST
  • Callback URL: https://core.api.ravenna.ai/api/webhooks/freshservice/ticket
  • Header: Secret with the Webhook Signing Secret copied from Ravenna as its value
  • Encoding: JSON
  • Content: Simple
In Simple content, select both Ticket ID (numeric) ({{ticket.id_numeric}}) and Event Performer ID ({{event_performer_id}}). Ravenna needs both fields: the numeric ticket ID identifies the ticket, and the event performer ID prevents changes made by the integration account from syncing back in a loop.
5

Save and activate the workflow

Save the workflow and set it to Active. If you created a workspace-level workflow, repeat these webhook steps for each Freshservice workspace whose tickets you want to sync.

4. Enable ticket replication in Ravenna

For each Ravenna channel that should sync with Freshservice, open Channel Settings > Ticket Replication, enable Freshservice replication in the directions you need, and select Configure. Choose the matching Freshservice Workspace. Ravenna creates outbound tickets in this workspace and accepts inbound tickets only from this workspace. Status mapping is automatic; there is no status mapping form to complete. See ticket replication for the fields and statuses that sync.

Verify the connection

Create a ticket in the configured Freshservice workspace using a regular agent account, then check that it appears in the matching Ravenna channel. Update the ticket or add a note in Freshservice to check inbound changes. Create a ticket in that Ravenna channel to check outbound sync. Events performed by the dedicated OAuth agent are intentionally ignored, so use another account for the inbound test.

Troubleshooting

Confirm both URLs use the full https:// format and the correct domains. Sign in as the dedicated agent, confirm it is active in Freshservice, and verify it has access to the relevant workspaces and the permissions requested by Ravenna.
Confirm the workflow is Active, its events include the change you made, and the webhook uses the exact callback URL and the current Webhook Signing Secret in the Secret header. Check that Simple content includes both numeric ticket ID and event performer ID. Verify inbound replication is enabled for the channel and its selected Workspace matches the ticket’s Freshservice workspace. Test with an account other than the OAuth agent.
Confirm outbound replication is enabled for the channel, a Freshservice Workspace is selected, and the dedicated agent can create and update tickets in that workspace.
Last modified on September 28, 2026