Logs

The Moveworks Logs App contains multiple log types that can help you debug Plugins built on the Agentic Automation Engine.

Where can I access logs?

  1. Go to https://my.moveworks.com/ and log in
  2. Click the App Switched in the top right
  3. Click on the "Logs" tile in the home page


















If you don't see the Logs App, you need to request the "Creator Studio Logs Viewer" role from your Moveworks Admin.

Log Types

All logs have the following top-level, shared metadata:

Timestamp: 2024-12-13 18:42:15.924

Log level: Debug

Log type: action.http

Plugin name: Lookup Customer Account Details

Requestor: [email protected]

Summary: HTTP request executed

Data redaction: Sensitive data in this log is not redacted. Learn more

compound_action.trigger

Example:

"root":{
  "accessed_variables":{
    "request_type":"get"
    "test_user":{...}
  }
  "created_at":"2024-12-13T18:03:28Z"
  "error_message":""
  "input_arguments":{
    "request_type":{...}
    "test_user":{...}
  }
  "progress_updates":[
  ]
  "return_value":"null"
  "root_uuid":"4vzrjqXHKCMd"
  "status":"WORKFLOW_STATUS_PENDING"
  "step_statuses":{
    "mfm_workday_time_off_data_retrieval":"WORKFLOW_STATUS_PENDING"
    "mfm_workday_time_off_data_retrieval.1-be16ed24-2b86-401c-be91-867dbfe9dd9b":"WORKFLOW_STATUS_PENDING"
  }
  "use_case_uuid":"51c834b4-d98c-4f3a-9739-15a9c87c7322"
  "workflow_id":"vuX-0PRliibN"
}

Attribute Descriptions:

🚧

Attributes labeled with a ❗️means they can be redacted. Learn more about log redaction here.

  • ❗️accessed_variables - The variables that were accessed during the triggering of the compound action
  • created_at - The time when the log was emitted.
  • error_message - A Moveworks error message. Only applicable if an error was thrown.
  • ❗️input_arguments - This a dictionary of input arguments used to trigger the compound action. Each item in the dictionary details the input argument name, data type, and value.
  • progress_updates - A list of Progress Updates that were sent back to the end user. This will be empty.
  • ❗️return_value - This will always be null
  • root_uuid - The root uuid that ties all of the compound_action.trigger, compound_action.step,action.http together for a single execution of a Plugin.
  • step_statuses - This is a dictionary of all of the steps & their respective statuses.
  • status - This is the first status of the compound action. Can be PENDING or ERROR.
  • use_case_uuid - This is the UUID of the compound action we are triggering.
  • workflow_id - This is the compound action's instance execution ID. It will be unique for each run of the compound action.

What issues does this help debug?

  • Compound Action was triggered with incorrect/malformed data
  • Compound Action threw a Moveworks error

compound_action.step

"root":{
  "accessed_variables":{
    "request_type":"get"
    "mfm_workday_get_timeOffDetails_result":{...}
    "mfm_workday_get_worker_result":{...}
    "mfm_workday_get_eligibleAbsenceTypes_result":{...}
    "test_user":{...}
  }
  "created_at":"2024-12-13T18:03:48Z"
  "error_message":""
  "from_status":"WORKFLOW_STATUS_PENDING"
  "payload_data":{
    "progress_update":{}
    "error":{}
    "result":{...}
    "status":"ACTION_STATUS_DONE"
    "uuid":"1FSDh_S7z6kF"
    "result_schema":{...}
  }
  "progress_updates":[
  ]
  "return_value":{
    "allTimeOffs":[...]
    "timeOffTypes":[...]
    "instructions_for_model":"You MUST only share what the user asked about"
  }
  "root_uuid":"4vzrjqXHKCMd"
  "step_statuses":{
    "mfm_workday_time_off_data_retrieval.3":"WORKFLOW_STATUS_COMPLETE"
    "mfm_workday_time_off_data_retrieval.3.2.2":"WORKFLOW_STATUS_COMPLETE"
  }
  "to_status":"WORKFLOW_STATUS_COMPLETE"
  "workflow_id":"vuX-0PRliibN"
}

Attribute Descriptions:

🚧

Attributes labeled with a ❗️means they can be redacted. Learn more about log redaction here.

  • ❗️accessed_variables - The variables that were accessed during this step of the compound action.
  • created_at - The time when the log was emitted.
  • error_message - A Moveworks error message. Only applicable if an error was thrown.
  • from_status - This is the previous status of the compound action
  • ❗️payload_data - All of the data that was sent and received for an Action. Only applicable if an Action was triggered at this step.
  • progress_updates - A list of Progress Updates that were sent back to the end user.
  • ❗️return_value - The final data object that was sent to the LLM.
  • root_uuid - The root uuid that ties all of the compound_action.trigger, compound_action.step,action.http together for a single execution of a Plugin.
  • step_statuses - This is a dictionary of all of the steps & their respective statuses.
  • to_status - This is the new status of the compound action. Can be
  • workflow_id - This is the compound action's instance execution ID. It will be unique for each run of the compound action.

What issues does this help debug?

  • Compound Action hit the wrong conditional
  • HTTP, Script, or Built-in Action failed
  • Compound Action isn't returning the correct data
  • Input/Outputs of each step are incorrect/malformed

action.http

Example:

"root":{
  "canonical_endpoint":"moveworks.my.salesforce.com/services/data/v58.0/query?q=S*****'"
  "request_headers":"Authorization: B*****h"
  "request_method":"GET"
  "request_payload":"<EMPTY>"
  "response_code":{}
  "response_payload":{...}
}

Attribute Descriptions:

🚧

Attributes labeled with a ❗️means they can be redacted. Learn more about log redaction here.

  • canonical_endpoint - The full Base URL + Endpoint we made a request to.
  • ❗️request_headers - The headers sent with the request.
  • request_method - The request method. This can be GET, POST, PUT, DELETE, or PATCH.
  • ❗️request_payload - The request body sent with the request.
  • response_code - The response code returned from the request (e.g. 200, 404).
  • ❗️response_payload - The response returned from the request

What issues does this help debug?

  • HTTP Request failed due to bad/incorrect auth info
  • HTTP Request failed due to bad/incorrect request info


Filters

  1. Time-range - This filters for logs between a lower & upper bound time range. It defaults to the last 6 hours & can go back a max of 14 days.
  2. Root UUID - This UUID that ties an entire Plugin execution together.
  3. Requestor - This is the user email of the user who triggered the Plugin.
  4. Log Level - This is the level of the log. By default it will be LOG_LEVEL_DEBUG. If an error occurred, it will be LOG_LEVEL_ERROR.
  5. Log Type - This can be compound_action.trigger, compound_action.step,action.http
  6. Response Code - This is only applicable to action.http logs. It filters these logs based on the requests response code (e.g. 200, 404)

Log Redaction

All of the logs emitted from a specific Plugin can be redacted/unredacted. You can control this toggle from the Set up launch page for a specific Plugin. When a change is made, it only affects future logs emitted; it never changes logs that already exist.

Moveworks defines redaction as permanently removing information at the source so that it can never be viewed by anyone at any point in the future.


Data Redaction ON

  1. We ALWAYS redact Connector information (e.g. API Keys, Access Tokens, Passwords, etc.)
  2. We NEVER redact metadata coming from a log. View the full list of metadata attributes here.
  3. compound_action.trigger, compound_action.step,action.http logs will have PII & sensitive data redacted.

Data Redaction OFF

  1. We ALWAYS redact Connector information (e.g. API Keys, Access Tokens, Passwords, etc.)
  2. We NEVER redact metadata coming from a log. View the full list of metadata attributes here.
  3. compound_action.trigger, compound_action.step,action.http logs will be fully unredacted.