MENU
    Zendesk
    • 06 Jun 2025
    • 2 Minutes to read
    • Dark

    Zendesk

    • Dark

    Article summary

    Overview

    This Adapter allows you to connect to Zendesk to fetch account activity logs.

    Deployment Configurations

    All adapters support the same client_options, which you should always specify if using the binary adapter or creating a webhook adapter. If you use any of the Adapter helpers in the web app, you will not need to specify these values.

    • client_options.identity.oid: the LimaCharlie Organization ID (OID) this adapter is used with.
    • client_options.identity.installation_key: the LimaCharlie Installation Key this adapter should use to identify with LimaCharlie.
    • client_options.platform: the type of data ingested through this adapter, like text, json, gcp, carbon_black, etc.
    • client_options.sensor_seed_key: an arbitrary name for this adapter which Sensor IDs (SID) are generated from, see below.

    Adapter-specific Options

    Adapter Type: zendesk

    • api_token: your Zendesk API token

    • zendesk_domain: your Zendesk domain, like initech.zendesk.com

    • zendesk_email: your Zendesk email address that created the API token

    CLI Deployment

    Adapter downloads can be found here.

    chmod +x /path/to/lc_adapter
    
    /path/to/lc_adapter zendesk client_options.identity.installation_key=$INSTALLATION_KEY \
    client_options.identity.oid=$OID \
    client_options.platform=json \
    client_options.sensor_seed_key=$SENSOR_NAME \
    client_options.hostname=$SENSOR_NAME \
    client_options.mappings.event_type_path=action \
    api_token=$API_TOKEN \
    zendesk_domain='$YOUR_COMPANY.zendesk.com' \
    zendesk_email=you@yourcompany.com
    Bash

    Infrastructure as Code Deployment

    # Zendesk Specific Docs: https://docs.limacharlie.io/docs/adapter-types-zendesk
    
    zendesk:
      api_token: "YOUR_ZENDESK_API_TOKEN" # (required) Your Zendesk API token. Store securely.
      zendesk_domain: "yourcompany" # (required) Your Zendesk subdomain (e.g., "yourcompany" if your URL is yourcompany.zendesk.com).
      zendesk_email: "api_user@yourcompany.com" # (required) The email address of the Zendesk user associated with the API token.
      client_options:
        identity:
          oid: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" # (required) Organization ID from LimaCharlie.
          installation_key: "YOUR_LC_INSTALLATION_KEY_ZENDESK" # (required) Installation key associated with the OID.
        hostname: "zendesk-support-adapter-prod-01.example.com" # (required if not using sensor_hostname_path)
        platform: "saas_api_zendesk" # (required) Indicates the source is the Zendesk API.
        architecture: null # (optional) Not applicable for SaaS API.
        mapping:
          # Zendesk API returns JSON (e.g., for tickets, audit logs).
          parsing_re: null
          # (optional) Path to uniquely ID the original Zendesk object (e.g., ticket ID, audit log ID).
          sensor_key_path: "id" # Zendesk objects usually have an 'id'.
          sensor_hostname_path: null # (optional)
          # (optional) Example: "ZENDESK_TICKET_UPDATED", "ZENDESK_USER_CREATED". Based on Zendesk event/object types.
          # For audit logs, it might be something like 'source_type' and 'action'.
          event_type_path: "ZENDESK_{{ .audit_log_source_type | token | upper | default \"TICKET\" }}_{{ .action | token | upper | default \"EVENT\" }}" # Example assuming audit log structure.
          # (optional) JSON path to the event's occurrence time. E.g., 'created_at', 'updated_at'.
          event_time_path: "created_at" # Or 'updated_at'.
          investigation_id_path: "ticket_id" # (optional) Or "actor_id" for audit logs.
          transform:
            "+support_platform": "Zendesk"
            "+zendesk_ticket_id": "{{ .ticket_id }}" # If processing ticket events
            "+zendesk_actor_name": "{{ .actor_name }}" # For audit logs
            # "+ticket_subject_preview": "{{ .subject | truncate 50 }}" # Hypothetical truncate
            "-description_html_formatted": null # If plain text description is preferred
          drop_fields:
          - "custom_fields_verbose_map"
          - "via.source.from.original_message_id"
          sid_replication_path: null # (optional)
        # mappings: null
        indexing:
          enabled: true
          default_index: "zendesk-events-{{ .identity.oid | substr 0 8 }}"
        is_compressed: false # (optional)
        sensor_seed_key: "SEED_KEY_ZENDESK_ADAPTER_001" # (required)
        dest_url: "https://input.limacharlie.io" # (optional) The destination URL. Usually defaults correctly.
    YAML

    API Doc

    See the official documentation.


    Was this article helpful?