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 asravenna-integration@yourcompany.com, so the connection does not depend on an employee’s account.
Add the agent
Grant access to the workspaces and tickets you will sync
Save the agent email
2. Connect the agent to Ravenna
Open the Freshservice integration
Enter the connection details
- FreshWorks Domain: the full URL, including
https://, such ashttps://yourcompany.myfreshworks.com - Freshservice Domain: the full URL, including
https://, such ashttps://yourcompany.freshservice.com - Agent Email: the dedicated agent’s email address
Authorize the connection
freshservice.agentgroups.manage, which lets Ravenna list agent groups and assign tickets to them.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.Copy the webhook signing secret from Ravenna
Secret header below.Create an event-based ticket workflow in Freshservice
Ravenna Sync.Select the ticket events
- Ticket is raised
- Ticket is updated
- Reply is sent
- Note is added (any type)
Add the webhook action
- Request type:
POST - Callback URL:
https://core.api.ravenna.ai/api/webhooks/freshservice/ticket - Header:
Secretwith the Webhook Signing Secret copied from Ravenna as its value - Encoding:
JSON - Content:
Simple
{{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.Save and activate the workflow
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. Complete these fields:- Workspace (required): the matching Freshservice workspace. Ravenna creates outbound tickets in this workspace and accepts inbound tickets only from this workspace.
- Outbound Group (optional): the Freshservice agent group that Ravenna assigns to tickets it creates in Freshservice. The list shows groups from the selected workspace. Leave it empty to create tickets without a group.
- Source Mapping (optional): the Freshservice source to set on outbound tickets for each Ravenna ticket source, such as Slack, Email, or Portal.
freshservice.agentgroups.manage OAuth scope. Connections created before this scope was added must reconnect Freshservice in Settings > Integrations before the Outbound Group list shows any groups.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
Freshservice changes do not appear in Ravenna
Freshservice changes do not appear in Ravenna
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.Ravenna changes do not appear in Freshservice
Ravenna changes do not appear in Freshservice
The Outbound Group list is empty
The Outbound Group list is empty
freshservice.agentgroups.manage scope. Confirm the dedicated agent can view groups in that workspace.