---
sourceDocument: Xanadu API Reference
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - en-US

ft:publication_title :

    - Xanadu API Reference

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# DevOpsOrchestrationToolIntegrationHandler - Scoped

# DevOpsOrchestrationToolIntegrationHandler - Scoped {#ariaid-title1}

* Release version: Xanadu
* 
* Updated August 1, 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 1 minute to read

The DevOpsOrchestrationToolIntegrationHandler API enables processing
of payloads from custom DevOps tools.

A custom DevOps tool is any tool that doesn't have an integration with DevOps. For a list of tools that have DevOps integrations, see [DevOps Change Velocity integrations](https://www.servicenow.com/docs/access?context=dev-ops-overview&version=xanadu&pubname=xanadu-it-service-management&ft:locale=en-US).

This API enables the processing of payloads that are used by the REST endpoint [DevOps - POST
/devops/tool/{capability}](https://servicenow-prod.fluidtopics.net/trLiekURzMRCuYHEVBSUIQ#devops-POST-tool "Posts the passed in payload to the Inbound Event [sn_devops_inbound] table for processing by a custom DevOps subflow."). You must implement the methods of this API in a script include
before calling the POST /devops/tool/{capability} endpoint.

This API executes in the `sn_devops` namespace. For more information about DevOps, see [DevOps Config](https://www.servicenow.com/docs/access?context=devops-config-landing-page&version=xanadu&pubname=xanadu-it-service-management&ft:locale=en-US).

## DevOpsOrchestrationToolIntegrationHandler - getNativeIdForOrchestrationTask(Object
payload) {#ariaid-title2}

Returns the value of the orchestrationTaskName parameter from the
payload for the POST /devops/tool/{capability} endpoint.
You must implement this method in a script include before calling the REST endpoint [DevOps - POST
/devops/tool/{capability}](https://servicenow-prod.fluidtopics.net/trLiekURzMRCuYHEVBSUIQ#devops-POST-tool "Posts the passed in payload to the Inbound Event [sn_devops_inbound] table for processing by a custom DevOps subflow.").
{#DevOpsOrchToolIntH-getNIdOrchTask_O__table_mnx_hvm_ctb__entry__3}

| Name | Type | Description |
|-|-|-|
| payload | Object | Payload containing data from the custom tool which is accepted by the REST endpoint POST /devops/tool/{capability}, where capability is <kbd class="ph userinput">orchestration</kbd>. |
[Table 1. Parameters]

{#DevOpsOrchToolIntH-getNIdOrchTask_O__table_mnx_hvm_ctb} {#DevOpsOrchToolIntH-getNIdOrchTask_O__table_nnx_hvm_ctb__entry__2}

| Type | Description |
|-|-|
| String | Value of the orchestrationTaskName parameter from the payload. |
[Table 2. Returns]

{#DevOpsOrchToolIntH-getNIdOrchTask_O__table_nnx_hvm_ctb}  
In this example, a script include named
<kbd class="ph userinput">DevOpsOrchestrationCustomToolIntegrationHandler</kbd> implements the
methods handleTool and
getNativeIdForOrchestrationTask. The
getNativeIdForOrchestrationTask method is implemented to return the
value of the orchestrationTaskName parameter from the payload for POST
/devops/tool/{capability}.

    var DevOpsOrchestrationCustomToolIntegrationHandler = Class.create(); 

    DevOpsOrchestrationCustomToolIntegrationHandler.prototype = {     

        handleTool: function(toolName) { 
            if (!gs.nil(toolName) && toolName == 'sn_devops_custom_tool') 
                return true; 
            return false; 
        }, 

        getNativeIdForOrchestrationTask: function(payload) { 
            return payload.orchestrationTaskName; 
        }, 

        type: 'DevOpsOrchestrationCustomToolIntegrationHandler' 

    }; 

## DevOpsOrchestrationToolIntegrationHandler - handleTool(String toolName) {#ariaid-title3}

Checks if this handler is valid for the specified tool.
You must implement this method in a script include before calling [DevOps - POST
/devops/tool/{capability}](https://servicenow-prod.fluidtopics.net/trLiekURzMRCuYHEVBSUIQ#devops-POST-tool "Posts the passed in payload to the Inbound Event [sn_devops_inbound] table for processing by a custom DevOps subflow.").
{#DevOpsOrchToolIntH-handleTool_S__table_gtf_1vm_ctb__entry__3}

| Name | Type | Description |
|-|-|-|
| toolName | String | Name of the tool. Located in the Tool Name field in the DevOps Tool Integration \[sn_devops_tool_integration\] table. |
[Table 3. Parameters]

{#DevOpsOrchToolIntH-handleTool_S__table_gtf_1vm_ctb} {#DevOpsOrchToolIntH-handleTool_S__table_htf_1vm_ctb__entry__2}

| Type | Description |
|-|-|
| Boolean | Flag that indicates whether this handler is valid for the specified tool. Possible values: * true: This handler can be used for the specified tool. * false: This handler can't be used for the specified tool. {#DevOpsOrchToolIntH-handleTool_S__ul_ovl_gb4_ctb} |
[Table 4. Returns]

{#DevOpsOrchToolIntH-handleTool_S__table_htf_1vm_ctb}  
In this example, a script include named
<kbd class="ph userinput">DevOpsOrchestrationCustomToolIntegrationHandler</kbd> implements the
methods handleTool and
getNativeIdForOrchestrationTask. The handleTool method
is implemented to check that the passed in name is for the correct tool. Replace
`'sn_devops_custom_tool'` with the name of the tool that you're using.

    var DevOpsOrchestrationCustomToolIntegrationHandler = Class.create(); 

    DevOpsOrchestrationCustomToolIntegrationHandler.prototype = {     

        handleTool: function(toolName) { 
            if (!gs.nil(toolName) && toolName == 'sn_devops_custom_tool') 
                return true; 
            return false; 
        }, 

        getNativeIdForOrchestrationTask: function(payload) { 
            return payload.orchestrationTaskName; 
        }, 

        type: 'DevOpsOrchestrationCustomToolIntegrationHandler' 

    }; 


