Channel Resolver Integration - Zendesk
Start Here
- If the Moveworks user is set to
Admin
level permissions- No action needed, Moveworks Customer Success team can configure this within your system and this guide does not need to be followed.
- If the Moveworks user is set to
Agent
level permissions or more granular permissions with aCustom Role
- We will not be able to automatically create the webhook on our own and require admin assistance.
- In addition to the permissions detailed in the Zendesk document below, we need an additional permission to view, add, edit, and delete triggers
Configuration
This first step only needs to be run if Moveworks has Agent level permissions on Zendesk.
- Create webhook manually.
- Under
{{ zendesk_url }}/admin/apps-integrations/webhooks/webhooks
, create a new webhook with the following settings.- The
name
must be exactlyMoveworks Webhook Integration
- The endpoint needs to be
https://app.moveworks.ai/{ORG_NAME}/zendesk/zendesk/events
- The
- After the webhook is generated, the signing_secret needs to be securely sent to Moveworks CS team.
Manual Configuration of Triggers
If Moveworks does not have permissions to create Triggers in your Zendesk instance, we also need to manually configure the following webhooks.
- Create webhook.
- Under
{{ zendesk_url }}/admin/apps-integrations/webhooks/webhooks
, create a new webhook with the following settings.- The
name
must be exactlyMoveworks Webhook Integration
- The endpoint needs to be
https://app.moveworks.ai/{ORG_NAME}/zendesk/events
- The
- After the webhook is generated, the signing_secret needs to be sent to us via the customer as we will not be able to query it from our end.
- Under
- Create a trigger category for Moveworks under
{{ zendesk_url }}/admin/object-rules/rules/triggers
calledMoveworks Triggers
. - We will need to create three separate triggers under this category.
Moveworks Trigger - New Comment
- Name:
Moveworks Trigger - New Comment
- Condition:
Comment
is
Present (public or private)
- Action:
Notify active webhook
Moveworks Webhook Integration
- Payload:
{ "event_type": "comment_created", "timestamp": "{{ticket.latest_comment.created_at_with_time}}", "comment": { "id": {{ticket.latest_comment.id}}, "type": "Comment", "author_id": {{ticket.latest_comment.author.id}}, "author_name": "{{ticket.latest_comment.author.name}}", "body": "{{ticket.latest_comment.value}}", "plain_body": "{{ticket.latest_comment.value}}", "public": {{ticket.latest_comment.is_public}}, "attachments": [ {%- for attachment in ticket.latest_comment.attachments -%} { "file_name": "{{attachment.filename}}", "url": "{{attachment.url}}", "size": {{attachment.size}} }{% unless forloop.last %},{% endunless %} {%- endfor -%} ], "created_at": "{{ticket.latest_comment.created_at_with_time}}" }, "ticket": { "id": {{ticket.id}}, "subject": "{{ticket.title}}", "description": "{{ticket.description}}", "submitter_id": {{ticket.submitter.id}}, "requester_id": {{ticket.requester.id}}, {% if ticket.assignee != blank %}"assignee_id": {{ticket.assignee.id}},{% endif %} {% if ticket.group != blank %}"group_id": {{ticket.group.id}},{% endif %} "created_at": "{{ticket.created_at_with_timestamp}}", "updated_at": "{{ticket.updated_at_with_timestamp}}", "type": "{{ticket.ticket_type}}", "status": "{{ticket.status}}", "comments": [ {%- for comment in ticket.comments -%} { "id": {{comment.id}}, "type": "Comment", "author_id": {{comment.author.id}}, "author_name": "{{comment.author.name}}", "body": "{{comment.value}}", "plain_body": "{{comment.value}}", "public": {{comment.is_public}}, "attachments": [ {%- for attachment in comment.attachments -%} { "file_name": "{{attachment.filename}}", "url": "{{attachment.url}}", "size": {{attachment.size}} }{% unless forloop.last %},{% endunless %} {%- endfor -%} ], "created_at": "{{comment.created_at_with_time}}" }{% unless forloop.last %},{% endunless %} {%- endfor -%} ] } }
Moveworks Trigger - Ticket Updated
- Name:
Moveworks Trigger - Ticket Updated
- Condition:
Ticket
is
Updated
- Action:
Notify active webhook
Moveworks Webhook Integration
- Payload:
{ "event_type": "ticket_updated", "timestamp": "{{ticket.updated_at_with_timestamp}}", "user": { "name": "{{current_user.name}}", "email": "{{current_user.email}}", "id": {{current_user.id}} }, "ticket": { "id": "{{ticket.id}}", "subject": "{{ticket.title}}", "description": "{{ticket.description}}", "submitter_id": {{ticket.submitter.id}}, "requester_id": {{ticket.requester.id}}, {% if ticket.assignee != blank %}"assignee_id": {{ticket.assignee.id}},{% endif %} {% if ticket.group != blank %}"group_id": {{ticket.group.id}},{% endif %} "created_at": "{{ticket.created_at_with_timestamp}}", "updated_at": "{{ticket.updated_at_with_timestamp}}", "type": "{{ticket.ticket_type}}", "status": "{{ticket.status}}", "comments": [ {%- for comment in ticket.comments -%} { "id": {{comment.id}}, "type": "Comment", "author_id": {{comment.author.id}}, "author_name": "{{comment.author.name}}", "body": "{{comment.value}}", "plain_body": "{{comment.value}}", "public": {{comment.is_public}}, "attachments": [ {%- for attachment in comment.attachments -%} { "file_name": "{{attachment.filename}}", "url": "{{attachment.url}}", "size": {{attachment.size}} }{% unless forloop.last %},{% endunless %} {%- endfor -%} ], "created_at": "{{comment.created_at_with_time}}" }{% unless forloop.last %},{% endunless %} {%- endfor -%} ] } }
Moveworks Trigger - Ticket Created
- Name:
Moveworks Trigger - Ticket Created
- Condition:
Ticket
is
Created
- Action:
Notify active webhook
Moveworks Webhook Integration
- Payload:
{ "event_type": "ticket_created", "timestamp": "{{ticket.created_at_with_timestamp}}", "ticket": { "id": {{ticket.id}}, "subject": "{{ticket.title}}", "description": "{{ticket.description}}", "submitter_id": {{ticket.submitter.id}}, "requester_id": {{ticket.requester.id}}, {% if ticket.assignee != blank %}"assignee_id": {{ticket.assignee.id}},{% endif %} {% if ticket.group != blank %}"group_id": {{ticket.group.id}},{% endif %} "created_at": "{{ticket.created_at_with_timestamp}}", "updated_at": "{{ticket.updated_at_with_timestamp}}", "type": "{{ticket.ticket_type}}", "status": "{{ticket.status}}", "comments": [ {%- for comment in ticket.comments -%} { "id": {{comment.id}}, "type": "Comment", "author_id": {{comment.author.id}}, "author_name": "{{comment.author.name}}", "body": "{{comment.value}}", "plain_body": "{{comment.value}}", "public": {{comment.is_public}}, "attachments": [ {%- for attachment in comment.attachments -%} { "file_name": "{{attachment.filename}}", "url": "{{attachment.url}}", "size": {{attachment.size}} }{% unless forloop.last %},{% endunless %} {%- endfor -%} ], "created_at": "{{comment.created_at_with_time}}" }{% unless forloop.last %},{% endunless %} {%- endfor -%} ] } }
Updated about 1 month ago