Freshservice ticket replication is outbound only (Ravenna to Freshservice). Changes made directly in Freshservice do not sync back to Ravenna.
How ticket replication works
When replication is enabled for a channel, Ravenna automatically:- Creates tickets in Freshservice when new Ravenna tickets are created
- Syncs comments from Ravenna to Freshservice (create, edit, and delete)
- Updates status based on your configured status mappings
- Maps priority from Ravenna priority levels to Freshservice priority values
- Syncs assignee when users exist in both systems
Setup
Connect Freshservice integration
Install and configure the Freshservice integration in Settings > Integrations.
Follow the Freshservice setup guide to connect your Freshservice instance
Configure status mapping
Map Ravenna ticket statuses to Freshservice workflow states in the integration settings. Status mappings apply across all channels and ensure status changes sync correctly.
Enable replication for a channel
Navigate to the channel where you want to enable replication:
- Open Channel Settings
- Go to Ticket Replication
- Enable replication for Freshservice
- Click Configure to set channel-specific preferences
Status mapping
Status mapping ensures ticket states sync correctly from Ravenna to Freshservice:- Configure mappings in Freshservice Integration Settings
- Map each Ravenna status to a corresponding Freshservice status
- Mappings apply to all channels using ticket replication
- When a status changes in Ravenna, the mapped status updates in Freshservice
Freshservice uses numeric status codes: Open (2), Pending (3), Resolved (4), and Closed (5). Custom statuses may use different codes depending on your Freshservice configuration.
Priority mapping
Ravenna priority levels map to Freshservice priority values:| Ravenna priority | Freshservice priority |
|---|---|
| Low | Low (1) |
| Medium | Medium (2) |
| High | High (3) |
| Urgent | Urgent (4) |
Custom fields synchronization
Custom fields from Ravenna tickets sync to Freshservice as formatted HTML comments on the linked ticket. This ensures your custom field data is visible in Freshservice without requiring native custom field configuration. How it works:- When a ticket with custom fields is replicated to Freshservice, a comment is created with a formatted table showing all custom field values
- When custom fields are updated in Ravenna, the comment in Freshservice is automatically updated
- The comment displays as a formatted HTML table with field names and values
Custom field synchronization is one-way (Ravenna to Freshservice). Changes to the comment in Freshservice do not sync back to Ravenna.
What syncs
Automatically synced (Ravenna to Freshservice):- Ticket creation
- Comments (create, edit, and delete)
- Status changes (based on your mappings)
- Priority updates
- Assignee changes (when users exist in both systems)
- Custom fields (synced as formatted HTML comments)
- Changes from Freshservice back to Ravenna
- Attachments
- Ticket history and audit logs
Troubleshooting
Tickets not syncing:- Verify the integration is connected in Settings > Integrations
- Check that replication is enabled for the channel
- Confirm status mappings are configured
- Ensure the Freshservice domain is correct
- Verify status mappings exist for the status being changed
- Check that the mapped status code is valid in your Freshservice instance
- Confirm the issue type supports the status transition
- Comments sync with a short delay
- Check that the Freshservice ticket is linked to the Ravenna ticket
- Verify the integration connection is active
- The user must exist in Freshservice as an agent
- Ravenna matches users by email address
- If a user is not found in Freshservice, the assignee field is left empty
Best practices
- Map statuses before enabling replication to avoid sync issues with unmapped states
- Test with one channel first to verify configuration before enabling across multiple channels
- Verify agent accounts exist in Freshservice for users who will be assigned tickets
- Monitor initial tickets to confirm replication, status mapping, and priority mapping work as expected