For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Logo
DeveloperAcademyCommunityStatus
  • Getting Started
    • Welcome to Moveworks
    • Roadmap & Release Notes
    • Moveworks Best Practices
    • Labs
    • Professional Services
    • Support
  • AI Assistant
    • AI Assistant Overview
    • Capabilities
      • AI Disclaimers
      • Configure Disclaimers & Labels
      • Approvals Queue
      • Channel Resolver
        • Configure Channel Resolver
        • How To Guides for Channel Resolver
        • Channel Resolver Troubleshooting Guide
        • Channel Resolver Integration - Freshservice
        • Channel Resolver Integration - Jira Server
        • Channel Resolver Integration - Zendesk
      • Code Interpreter
      • Display Configurations
      • Domains
      • Email Composer
      • Employee Communications
      • Notifications Settings
      • People & Places Lookups
      • Self Knowledge
      • Smart Handoff
      • Text Translator
      • Personalized Responses
      • World Knowledge App
    • Web Experiences
    • Analytics & Performance
  • Enterprise Search
    • Overview
    • Agentic RAG Overview
    • Content Ingestion Platform
    • Profile Boosting
    • Retrieval
    • Permissions Platform
    • Built-in Content Connectors
    • Build your own Content Connectors
    • Configure Search
    • Configure Enterprise Search
    • Vetted Content
    • Writing AI-Ready KB Articles
    • Document Chunking and Snippetization Overview
  • Productivity Boost
    • Overview
    • Configure Productivity Boost
    • Quick GPT
    • Calendar Management
    • Brief Me
DeveloperAcademyCommunityStatus
On this page
  • Start Here
  • Configuration
  • Manual Configuration of Triggers
  • Moveworks Trigger - New Comment
  • Moveworks Trigger - Ticket Updated
  • Moveworks Trigger - Ticket Created
AI AssistantCapabilitiesChannel Resolver

Channel Resolver Integration - Zendesk

||View as Markdown|
Was this page helpful?
Edit this page
Previous

Code Interpreter

Next
Built with

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 a Custom 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.

  1. Create webhook manually.

  • Under {{ zendesk_url }}/admin/apps-integrations/webhooks/webhooks, create a new webhook with the following settings.
    • The name must be exactly Moveworks Webhook Integration
    • The endpoint needs to be https://app.moveworks.ai/{ORG_NAME}/zendesk/zendesk/events
  1. 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.

  1. Create webhook.
    • Under {{ zendesk_url }}/admin/apps-integrations/webhooks/webhooks, create a new webhook with the following settings.
      • The name must be exactly Moveworks Webhook Integration
      • The endpoint needs to be https://app.moveworks.ai/{ORG_NAME}/zendesk/events
    • 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.

  1. Create a trigger category for Moveworks under {{ zendesk_url }}/admin/object-rules/rules/triggers called Moveworks Triggers.
  2. We will need to create three separate triggers under this category.

Moveworks Trigger - New Comment

  1. Name: Moveworks Trigger - New Comment
  2. Condition: Comment is Present (public or private)
  3. Action: Notify active webhook Moveworks Webhook Integration
  4. 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

  1. Name: Moveworks Trigger - Ticket Updated
  2. Condition: Ticket is Updated
  3. Action: Notify active webhook Moveworks Webhook Integration
  4. 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

  1. Name: Moveworks Trigger - Ticket Created
  2. Condition: Ticket is Created
  3. Action: Notify active webhook Moveworks Webhook Integration
  4. 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 -%}
    ]
    }
    }