# Troubleshooting Workflows

Quickly troubleshoot workflow executions to pinpoint issues, assess the necessary changes, and get the workflow up and running again.

After accessing the [Workflow Overview](/platform/user-guide/workflows/monitoring-workflows-dashboard.md#troubleshootingworkflows-accessingtheworkflowexecutionspage) page, select an item from the table to open the **Workflow execution timeline** in the right-side panel, displaying step-by-step execution details.

Find at the top of the overview, an **Outcome summary**:

* The **Outcomes** tab displays how many workflow executions reached one of the possible end results: `action_taken`, `no_action_taken`, `failed`, or `other`.
* The **Details** tab includes user-defined result details determined by `{dynamic values}` collected during the workflow execution. Refer to [Configuring flow controls](/platform/user-guide/workflows/creating-workflows/configuring-flow-controls.md#designer-endblock) to learn how to configure the outcome details.

<figure><img src="/files/qV2OoyqO4npnP4k7vmsR" alt=""><figcaption></figcaption></figure>

## Using the Workflow execution timeline for troubleshooting <a href="#troubleshootingworkflows-usingtheworkflowtimeline" id="troubleshootingworkflows-usingtheworkflowtimeline"></a>

Examine the workflow execution timeline from bottom to top to track the progress of events and actions. Pinpoint where the workflow deviated from expected results.

Keep in mind:

* The latest workflow steps always appear at the top of the timeline.
* The workflow execution timeline shows whether a step was executed, but does not indicate the **Status** of third-party or Nexthink modules involved.

For example, when a workflow **Service\API** thinklet calls a third-party system and receives a `200` (OK) response, the workflow does not mark the execution as failed, even if the response contains an internal third-party error.

{% hint style="warning" %}
The execution timeline is only available for workflow executions for 3 days after the workflow has ended.
{% endhint %}

## Action details <a href="#troubleshootingworkflows-actiondetails" id="troubleshootingworkflows-actiondetails"></a>

To further investigate the status and view more information about a particular action, click on the specific action in the timeline. A pop-up appears with more details displayed for further inspection.

{% hint style="info" %}
For troubleshooting purposes, the following Thinklets are clickable and provide detailed information for further inspection.

* Service\API
* Remote action
* Campaign
* Connector
* Update custom fields
  {% endhint %}

<figure><img src="/files/eMRw6B71yhwUAmJkDABt" alt="WorkflowPopUp.png" width="760"><figcaption></figcaption></figure>

### Remote action <a href="#troubleshootingworkflows-service-apithinklet" id="troubleshootingworkflows-service-apithinklet"></a>

When reviewing the details for a remote action Thinklet, the following information is available.

* **Start time:** The date and time when the system began processing the Thinklet.
* **End time:** The date and time when the system finished processing the Thinklet.
* **Status details:** Displayed only when an error has occurred and contains the message describing the fault that has occurred with the remote action.
* **Parameters:** Displayed when parameters have been used with this remote action. The contents of the parameters are shown here.
* **Outputs:** Displayed when there are outputs that have been captured by the remote action. The contents of the outputs are shown here.

<figure><img src="/files/Sx2rEvGocpUhV6Kui361" alt="" width="470"><figcaption></figcaption></figure>

### Campaign <a href="#troubleshootingworkflows-service-apithinklet" id="troubleshootingworkflows-service-apithinklet"></a>

When reviewing the details for a campaign Thinklet, the following information is available.

* **Start time:** The date and time when the system began processing the Thinklet.
* **End time:** The date and time when the system finished processing the Thinklet.
* **State details:** Displayed only when an error has occurred and contains the message back from the campaign that may describe the fault.
* **Parameters:** Displayed when parameters have been used with this campaign. The contents of the parameters are shown here.
* **Outputs:** Displayed where there are collected responses for the campaign. The contents of the outputs are shown here.

<figure><img src="/files/I7MQLKOVqcINnmOMN5sB" alt="" width="512"><figcaption></figcaption></figure>

### Service\API <a href="#troubleshootingworkflows-service-apithinklet" id="troubleshootingworkflows-service-apithinklet"></a>

When reviewing the details for a Service\API Thinklet action, the following information is available.

* **Start time:** The date and time when the system began processing the Thinklet.
* **End time:** The date and time when the system finished processing the Thinklet.
* **Response HTTP code:** The response received from the 3rd party API.
* **HTTP method:** The HTTP method used by the 3rd party API.
* **Resource path:** The resource path endpoint on the 3rd party API that the call is sent to.
* **Payload:** The body of the call that the system made to the 3rd party API.
  * In the case of large payloads, hover over the payload to display a tooltip with the full dataset.
* **Outputs:** If you have configured the outputs for this Thinklet, the collected data in these outputs is displayed here.

<figure><img src="/files/LNT4oaVqCbksMd1u5dV3" alt="image-20240205-152042.png" width="563"><figcaption></figcaption></figure>

### Connector <a href="#troubleshootingworkflows-service-apithinklet" id="troubleshootingworkflows-service-apithinklet"></a>

When reviewing the details for a Connector Thinklet action, the following information is available which gives the details of the API response used for the Connector:

* **Start time:** The date and time when the system began processing the Thinklet.
* **End time:** The date and time when the system finished processing the Thinklet.
* **Response HTTP code:** The response received from the 3rd party API.
* **HTTP method:** The HTTP method used by the 3rd party API.
* **Resource path:** The resource path endpoint on the 3rd party API that the call is sent to.
* **Payload:** The body of the call that the system made to the third-party API.
  * In the case of large payloads, hover over the payload to display a tooltip with the full dataset.
* **Outputs:** If you have configured the outputs for this Thinklet, the collected data in these outputs is displayed here.

<figure><img src="/files/UoVGvvC13J4lh6S3lj75" alt="" width="446"><figcaption></figcaption></figure>

### Update custom fields

When reviewing the outcome of an **Update custom fields** thinklet in the workflow monitoring timeline, the following details are available:

* **Status**: Indicates whether the thinklet execution succeeded or failed.
* **Time**: The date and time when the thinklet was executed.
* **Object**: The object type selected in the thinklet configuration: **Device** or **User**.
* **Target**: The specific user or device identifier involved in the update. For example, device ID).
* **Updated**: Lists the custom fields that were successfully updated:
  * **Custom field name**: The name of the updated field.
  * **Value**: The value written to the custom field.
* **Not updated—**&#x6F;nly shown in case of failure:
  * **Custom field name**: The custom field that failed to update.
  * **Value**: The value that was intended to be written.
  * **Error**: The reason for the failure. For example, *Failed to update custom fields.*

<figure><img src="/files/s5EpcmM8cYEATZBTFqjR" alt="" width="440"><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.nexthink.com/platform/user-guide/workflows/monitoring-workflows-dashboard/troubleshooting-workflows.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
