MENU
    PandaDoc
    • 06 Jun 2025
    • 3 Minutes to read
    • Dark

    PandaDoc

    • Dark

    Article summary

    Overview

    This Adapter allows you to connect to PandaDoc to fetch API 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: pandadoc

    • api_key: your PandaDoc API key

    CLI Deployment

    Adapter downloads can be found here.

    chmod +x /path/to/lc_adapter
    
    /path/to/lc_adapter pandadoc 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=method \
    api_key=$API_KEY
    Bash

    Infrastructure as Code Deployment

    # PandaDoc Specific Docs: https://docs.limacharlie.io/docs/adapter-types-pandadoc
    
    pandadoc:
      api_key: "YOUR_PANDADOC_API_KEY" # (required) Your PandaDoc API Key. Store securely.
      client_options:
        identity:
          oid: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" # (required) Organization ID from LimaCharlie.
          installation_key: "YOUR_LC_INSTALLATION_KEY_PANDADOC" # (required) Installation key associated with the OID.
        # Option 1: Static hostname for this sensor
        hostname: "pandadoc-events-adapter-prod-01.example.com" # (required if not using sensor_hostname_path) A unique, static hostname for this sensor instance.
        # Option 2: Dynamic hostname (see client_options.mapping.sensor_hostname_path below)
        platform: "saas_api_pandadoc" # (required) Indicates the source is the PandaDoc API.
        architecture: null # (optional) Not typically applicable for SaaS API integrations.
        mapping:
          # PandaDoc API (e.g., for webhooks or audit logs) returns JSON, so parsing_re is usually null.
          parsing_re: null
          # (optional) Path to uniquely ID the original PandaDoc event or document. PandaDoc objects usually have an 'id'.
          sensor_key_path: "id" # Or "uuid" or "event_id" depending on the specific PandaDoc event type.
          # (optional) If client_options.hostname is NOT set, use this to dynamically extract hostname from event (less common for PandaDoc).
          sensor_hostname_path: null
          # (optional) Example: "PANDADOC_DOCUMENT_SENT", "PANDADOC_DOCUMENT_VIEWED". Based on 'event_type' or similar field from PandaDoc.
          event_type_path: "PANDADOC_{{ .event | token | upper | default \"DOCUMENT_ACTIVITY\" }}" # Example: using an 'event' field.
          # (optional) JSON path to the event's occurrence time. E.g., 'date_created', 'date_modified'.
          event_time_path: "date_created" # Or "date_modified", "timestamp".
          # (optional) JSON path for a field to populate LimaCharlie's investigation_id.
          investigation_id_path: "created_by.id" # Example: using the ID of the user who created/triggered the event.
          # (optional) Use +/- syntax for transforms.
          transform:
            "+document_management_platform": "PandaDoc"
            "+document_name": "{{ .name }}"
            "+document_status": "{{ .status }}"
            "+creator_email": "{{ .created_by.email }}"
            "-metadata.internal_notes_verbose": null
          # (optional) A list of field paths to drop from the event.
          drop_fields:
          - "version_history_full" # If too verbose for general logging
          - "tokens_array_if_not_needed"
          sid_replication_path: null # (optional) Not typically relevant for PandaDoc events.
        # mappings: null # Deprecated or less common for field manipulation than client_options.mapping.transform
        indexing:
          enabled: true
          default_index: "pandadoc-events-{{ .identity.oid | substr 0 8 }}" # Example: index by org prefix
        is_compressed: false # (optional) API responses are typically not compressed at this layer.
        sensor_seed_key: "SEED_KEY_PANDADOC_ADAPTER_001" # (required) A unique key for this sensor to register with LimaCharlie.
        dest_url: "https://input.limacharlie.io" # (optional) The destination URL. Usually defaults correctly.
    YAML

    API Doc

    See the official documentation.


    Was this article helpful?


    What's Next