--- title: Log Type Reference excerpt: '' deprecated: false hidden: false metadata: title: '' description: '' robots: index next: pages: - slug: log-redaction title: Log Data Security type: basic --- # Overview Logs provide detailed visibility into plugin execution, webhook processing, and data flow. Each log entry includes shared metadata and a context-specific body under the root key. Use these logs to debug plugin selection, slot resolution, action execution, webhook handling, and more. _**Note**: Logs with sensitive data may be redacted. Learn more about [log redaction](/docs/log-redaction)._ ## Shared Metadata Every log includes the following top-level fields: | Field | Description | | :----------------- | :---------------------------------------------------------------- | | **Timestamp** | When the log was emitted (e.g., `2025-10-21 13:41:32`). | | **Log level** | Always `Debug`. | | **Log type** | Unique identifier for the log (e.g., `listener.webhook.trigger`). | | **Plugin name** | Name of the plugin (if applicable). | | **Requestor** | User or system that triggered the event (e.g., ``, email). | | **Summary** | Brief description of the event. | | **Data redaction** | Warning if sensitive data is not redacted. | *** # Log Types ## `dm.user.message` **Purpose**: Logs the user's original utterance and plugins that passed initial filtering. #### Example Body: ```json "root":{ "created_at":"2025-04-14T03:08:12Z" "plugins_passed_filter":{...} "rewritten_utterance":"" "user_utterance":"" } ``` | Attribute | Redacted? | Description | | :---------------------- | :----------- | :----------------------------------------------- | | `plugins_passed_filter` | No | List of plugins that passed assistant filtering. | | `rewritten_utterance` | Yes | Utterance sent to LLM after rewriting. | | `user_utterance` | Yes (Always) | Original user input from chat. | #### Debug Use Cases: * If your Plugin is low in the list but not selected, you may need to write better names, descriptions, and example triggering utterances * If your Plugin is not on the list, you may not be passing the Launch Permissions that are set on the Plugin. ## `conversational_process.execute` **Purpose**: Logs plugin selection and resolved slots. #### Example Body: ```json "root":{ "created_at":"2025-04-14T03:08:12Z" "error_message":"" "selected_plugin":"KnowledgeSearchPlugin" "slots":{...} } ``` | Attribute | Redacted? | Description | | :---------------- | :------------- | :--------------------------------- | | `error_message` | No | Error if plugin failed to trigger. | | `selected_plugin` | No | Plugin chosen by the AI. | | `slots` | Yes (Possible) | Resolved slot names and values. | #### Debug Use Cases * Why did my Plugin fail to trigger? * Are the slot values correct? ## `dm.assistant.message` **Purpose**: Logs a message sent to the user. #### Example Body: **Example**: ``` "root":{ "created_at":"2025-04-14T03:08:18Z" "error_message":"" "execution_id":"" "message":"" "message_type":"MESSAGE_TYPE_FINAL" "plugin_id":"ce815b89-f716-41dd-b998-63bb5d606b1e" "plugin_status":"PLUGIN_STATUS_DONE" } ``` | Attribute | Redacted? | Description | | :-------------- | :------------- | :----------------------------------------------- | | `message` | Yes (Possible) | The message sent from the assistant to the user. | | `plugin_status` | No | Final status (`DONE`, `FAILED`). | #### Debug Use Cases: * Why no response? Check `error_message` and `plugin_status`. ## `conversational_process.step.execute` **Purpose**: Logs individual step execution (actions, resolvers) in a plugin. #### Example Body: ``` "root":{ "created_at":"2025-04-14T03:08:15Z" "execution_id":"6aFu3ILfBbGB" "execution_updates": [ 0:{ "activity_update":{ "name":"action" "status":"ACTIVITY_STATUS_COMPLETE" "input":{...} "output":{...} } } ], "plugin_status":"PLUGIN_STATUS_PROCESSING" } ``` | Attribute | Redacted? | Description | | :--------------------------------- | :------------- | :------------------------------- | | `execution_updates[].name` | No | Step type (action, resolver). | | `execution_updates[].status` | No | Final status (`DONE`, `FAILED`). | | `execution_updates[].input/output` | Yes (Possible) | Data passed in/out of step. | #### Debug Use Cases: * Which step failed? * Unexpected input/output? *** ## `compound_action.trigger` **Purpose**: Logs initiation of a Compound Action. #### Example Body: ```Text JSON "root":{ "accessed_variables":{ "request_type":"get" "test_user":{...} } "error_message":"" "input_arguments":{ "request_type":{...} "test_user":{...} } "progress_updates":[ ] "return_value": {...} "root_uuid":"uuid" "status":"WORKFLOW_STATUS_PENDING" "step_infos": {...} "step_statuses":{ "plugin_name":"WORKFLOW_STATUS_PENDING" "plugin_name.step1-uuid":"WORKFLOW_STATUS_PENDING" } "use_case_uuid":"uuid" "workflow_id":"id" } ``` | Attribute | Redacted? | Description | | :------------------- | :------------- | :-------------------------------------------------------------------- | | `accessed_variables` | Yes (Possible) | Variables used during trigger. | | `input_arguments` | Yes (Possible) | Input args with type/value. | | `step_infos` | No | Information about the status of each step of the workflow | | root_uuid | No | The uuid that ties all actions and steps within a execution together. | | workflow_id | No | Compound action's instance execution ID | #### Debug Use Cases: * Malformed input data when triggered. * Trigger errors. ## `compound_action.step.execute` **Purpose**: Logs execution of a single step in a Compound Action. #### Example Body: ```Text JSON "root":{ "accessed_variables":{...} "created_at":"2024-12-13T18:03:48Z" "error_message":"" "from_status":"WORKFLOW_STATUS_PENDING" "payload_data":{...} "progress_updates":[] "return_value":{...} "step_statuses":{...} "to_status":"WORKFLOW_STATUS_COMPLETE" "workflow_id":"vuX-0PRliibN" } ``` | Attribute | Redacted? | Description | | :------------------------ | :------------- | :------------------------ | | `payload_data` | Yes (Possible) | Action input/output. | | `payload_data.result` | Yes (Possible) | Data returned by the step | | `from_status / to_status` | No | State transition. | #### Debug Use Cases: * Compound Action hit the wrong conditional * HTTP, Script, or Built-in Action failed * Compound Action isn't returning the correct data ## `action.http.trigger` **Purpose**: Logs HTTP action execution. #### Example Body: ``` "root":{ "canonical_endpoint":"moveworks.my.salesforce.com/services/data/v58.0/query?q=S*****'" "request_headers":"Authorization: B*****h" "request_method":"GET" "request_payload":"" "response_code":{} "response_payload":{...} } ``` | Attribute | Redacted? | Description | | :----------------- | :------------- | :------------- | | `request_headers` | Yes (Always) | Sent headers. | | `request_payload` | Yes (Always) | Request body. | | `response_payload` | Yes (Possible) | Response body. | #### Debug Use Cases: * HTTP Request failed due to bad/incorrect auth info * HTTP Request failed due to bad/incorrect request info ## `action.script.trigger` **Purpose**: Logs script (APIthon) execution. #### Example Body: ``` "root": { "created_at": "2025-07-31T23:07:50Z", "error_message": "", "language": "SCRIPT_LANGUAGE_APITHON", "result": { ... }, "variables": {...} } ``` | Attribute | Redacted? | Description | | :---------- | :------------- | :--------------- | | `variables` | Yes (Possible) | Input variables. | | `result` | Yes (Possible) | Script output. | #### Debug Use Cases * Understand why a script failed by inspecting the `error_message` * Reproduce issues with access to all variables the script received * Confirm whether the result matches expected output logic *** ## `listener.webhook.trigger` **Purpose**: Logs **incoming** webhook request and response sent back to the external system. #### Example Body: ```json { "http_method": "POST", "headers": { ... }, "parsed_body": { ... }, "raw_body": { ... }, "query_params": { }, "received_at": "2025-10-21T18:41:31Z", "request_type": "WEBHOOK_REQUEST_TYPE_WEBHOOK", "response_body": { ... }, "response_code": 200, "response_headers": { ... } } ``` | Attribute | Redacted? | Description | | :----------------------------------- | :------------- | :------------------------- | | `headers`, `raw_body`, `parsed_body` | Yes (Possible) | Full request details. | | `response_body`, `response_headers` | Yes (Possible) | What was sent back. | | `response_code` | No | HTTP status (e.g., `200`). | #### Debug Use Cases: * Did the webhook arrive? * Was the response correct? ## `listener.webhook.processor.update` **Purpose**: Logs processing of the webhook payload and event data. #### Example Body: ```json { "event_payload": { ... }, "process_update": { ... }, "event_metadata": { ... } } ``` | Attribute | Redacted? | Description | | :--------------- | :------------- | :----------------- | | `event_payload` | Yes (Possible) | Full parsed event. | | `process_update` | No | Processing state. | #### Debug Use Cases: * Event parsing issues. * Payload transformation. ## `listener.webhook.plugin.trigger` **Purpose**: Logs plugins triggered by the webhook. #### Example Body: ```json { "event_metadata": { ... }, "event_uuid": "uuid", "created_at": "2025-10-21T18:41:31.916667368Z", "expired": [], "failed_to_trigger": [], "skipped": [], "successfully_triggered": ["Plugin_1"] } ``` | Attribute | Redacted? | Description | | :----------------------------- | :-------- | :------------------------- | | `successfully_triggered` | No | List of triggered plugins. | | `failed_to_trigger`, `skipped` | No | Plugins that didn’t run. | #### Debug Use Cases: * Which plugins ran? *** # Best Practices * Use `root_uuid` to correlate logs across plugin executions * Filter by `plugin_name` or `log_type**` to isolate issues.