--- title: PDAutomationProvider - Scoped, Global description: The PDAutomationProvider API enables inserting an optional activity into a process while it's executing.Activates a playbook.Adds a specified optional activity to a process to be run relative to another activity during process execution.Assigns an optional activity to a lane to run during that lane's execution context.Deactivates a playbook.Duplicates a playbook. locale: en-US canonical_url: https://www.servicenow.com/docs/r/australia/api-reference/server-api-reference/PDAutomationProviderBothAPI.html release: australia product: Server API Reference classification: server-api-reference topic_type: concept last_updated: "2026-03-12" reading_time_minutes: 9 breadcrumb: [Server API reference, API reference, API implementation and reference] --- # PDAutomationProvider - Scoped, Global The PDAutomationProvider API enables inserting an optional activity into a process while it's executing. This API is part of the Playbooks plugin \(com.glide.pad.core\) and runs in the `sn_pad` namespace. Calling scripts with this API requires at least one of the following: - The caller must be in the same scope in which the optional activity trigger was created. - Admin privileges. A process is a series of activities ordered by lanes. An optional activity is predefined during process design. The activities aren't scheduled to run at a precise time. An activity can be assigned to a lane and made available to run during lane execution. An activity can be assigned to a process and made available to run during lane execution. To create an optional activity, it must have the **Start rule** set to **Manual** in the Activities \[sys\_pd\_activity\] table. Playbooks doesn't currently support creating manual activities. An agent adds the optional activity to a lane or activity relative to another activity. The process must be running to insert an optional activity. See also: - [Design an automated process](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/build-workflows/design-automated-process.md) - [Process Automation Designer lanes and activities](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/build-workflows/process-automation-designer-lanes-activities.md) **Parent Topic:**[Server API reference](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/server-api-reference/api-server.md) ## PDAutomationProvider – activateProcess\(String processDefinitionSysId\) Activates a playbook.
| Name | Type | Description |
|---|---|---|
| processDefinitionSysId | String | Sys\_id of a playbook.Table: Process Definitions \[sys\_pd\_process\_definition\] |
| Property | Description |
|---|---|
| Object | Object containing process definition activation details.``` { "errors": [Array] "process_definition": {Object}, "state": "String" } ``` |
| errors | List of errors. Empty if successful. Data type: Array of String\(s\) |
| process\_definition | The activated playbook and its properties.Data type: Object ``` "process_definition": { "active": Boolean, "snapshot": {Object}, "status": "String" } ``` |
| process\_definition.active | Flag that indicates whether the process definition for the deactivated playbook is active. Find process definitions in the Process Definitions \[sys\_pd\_process\_definition\] list.Valid values: - true: The process definition for the deactivated playbook is active. - false: The process definition for the deactivated playbook is inactive. Data type: Boolean |
| process\_definition.snapshot | Contains details about the process definition at the time of activation.Data type: Object ``` { "snapshot": { "created": "String", "processDefinitionSysId": "String" } } ``` |
| process\_definition. snapshot. created | The date that the playbook was created.Data type: String |
| process\_definition. snapshot. processDefinitionSysId | The sys\_id of the activated playbook.Data type: String |
| process\_definition.status | Indicates the publishing status of the playbook.Possible values: - draft: The playbook is in draft state. - published: The playbook is in published state. Data type: String |
| state | Indicates whether your request to activate was successful or not.Possible values: - SUCCESS – The playbook was successfully activated. - FAILURE – The ID for the playbook was not found. Data type: Object |
| Name | Type | Description |
|---|---|---|
| contextID | String | Sys\_id of the activity execution in which to add the optional activity. To access, click the process listed in the Process Executions \[sys\_pd\_context\] table. The execution selected must be in a state of **In Progress**. |
| activityId | String | Sys\_id of the optional activity listed in the Activities \[sys\_pd\_activity\] table.**Note:** To create an optional activity, it must have the **Start rule** set to **Manual** in the Activities \[sys\_pd\_activity\] table. |
| where | String | Indicates where to place the activity in the process. Valid values: - AFTER – Execute this activity after the relative activity context. - WITH – Execute the activity at the same time as another relative activity context. |
| relativeToId | String | ID of the relative activity context that the optional activity will run after or with. Listed in the Activity Context \[sys\_pd\_activity\_context\] table. |
| Type | Description |
|---|---|
| Boolean | Flag that indicates whether the activity was successfully scheduled to run. Possible values: - true: Activity is successfully scheduled to run. The output is a string stating `success`. - false: Activity isn't successfully scheduled to run. The output is an array of one or more error messages. If errors, list of one or more error messages. Message stating `Array of 0 or more elements` otherwise. |
| Array | If errors, list of one or more error messages. Message stating `Array of 0 or more elements` otherwise. Possible error messages: - `Invalid Optional activity Id`: The sys\_id provided for the **activityId** parameter is invalid. - `Invalid PD context Id`: The Process Designer \(PD\) sys\_id provided in the **contextID** parameter is invalid. - `Invalid position type`:The position type provided is invalid. See the description of the **where** parameter for valid types. - `Invalid Relative-to Id`: The sys\_id provided for the **relativeToId** parameter is invalid. - `Optional activity not found`: The sys\_id provided for the **activityId** parameter wasn't found. - `Process must still be active`: The process containing this activity must be active to run the optional activity. - `Relative activity context not found` : The sys\_id provided for the **relativeToId** parameter was not found. |
| Name | Type | Description |
|---|---|---|
| contextID | String | Sys\_id of the activity execution in which to add the optional activity. To access, click the process listed in the Process Executions \[sys\_pd\_context\] table. The execution selected must be in a state of **In Progress**. |
| activityId | String | Sys\_id of the optional activity listed in the Activities \[sys\_pd\_activity\] table.**Note:** To create an optional activity, it must have the **Start rule** set to **Manual** in the Activities \[sys\_pd\_activity\] table. |
| where | String | Indicates where to place the activity in the process. Valid values: - LAST – Execute as the final activity in a lane context. - NEXT – Execute in the next activity in a lane context. |
| relativeToId | String | ID of the relative lane context in which the optional activity is to run. Listed in the Lane Context \[sys\_pd\_lane\_context\] table. |
| Type | Description |
|---|---|
| Boolean | Flag that indicates whether the activity was successfully scheduled to run. Possible values: - true: Activity is successfully scheduled to run. The output is a string stating `success`. - false: Activity isn't successfully scheduled to run. The output is an array of one or more error messages. |
| Array | If errors, list of one or more error messages. Message stating `Array of 0 or more elements` otherwise. Possible error messages: - `Invalid Optional activity Id`: The sys\_id provided for the **activityId** parameter is invalid. - `Invalid PD context Id`: The Process Designer \(PD\) sys\_id provided in the **contextID** parameter is invalid. - `Invalid position type`:The position type provided is invalid. See the description of the **where** parameter for valid types. - `Invalid Relative-to Id`: The sys\_id provided for the **relativeToId** parameter is invalid. - `Optional activity cannot be added to lane`: The optional activity provided in the **activityId** parameter can't be added relative to the lane provided in the **relativeToId** parameter. Make sure that the **Activity Execution** selected is in the **In Progress** state. - `Optional activity not found`: The sys\_id provided for the **activityId** parameter wasn't found. - `Process must still be active`: The process containing this activity must be active to run the optional activity. - `Relative lane context not found` : The sys\_id provided for the **relativeToId** parameter was not found. |
| Name | Type | Description |
|---|---|---|
| processDefinitionSysId | String | Sys\_id of a playbook.Table: Process Definitions \[sys\_pd\_process\_definition\] |
| Property | Description |
|---|---|
| Object | Object containing process definition deactivation details.``` { "errors": [Array] "process_definition": {Object}, "state": "String" } ``` |
| errors | List of errors. Empty if successful. Data type: Array of String\(s\) |
| process\_definition | The deactivated playbook and its properties.Data type: Object ``` "process_definition": { "active": Boolean, "snapshot": {Object}, "status": "String" } ``` |
| process\_definition.active | Indicates whether the process definition for the deactivated playbook is active. Find process definitions in the Process Definitions \[sys\_pd\_process\_definition\] list.Possible values: - true: The process definition for the deactivated playbook is active. - false: The process definition for the deactivated playbook is inactive. Data type: Boolean |
| process\_definition.description | Details about your deactivated playbook.Data type: String |
| process\_definition.label | The name of the deactivated playbook that users see in the interface.Data type: String |
| process\_definition.name | The name for the deactivated playbook in the code. Only used as a request parameter in scripting.Data type: String |
| process\_definition.scope | The sys\_id of the application scope that your playbook is deactivated for.Data type: String |
| process\_definition.status | If the playbook is published, it changes back to a draft.Data type: String |
| state | Indicates whether deactivation was successful.Possible values: - SUCCESS – The playbook was successfully deactivated. - FAILURE – The ID for the playbook was not found. Data type: String |
| Name | Type | Description |
|---|---|---|
| processDefinitionSysId | String | Sys\_id of a playbook.Table: Process Definitions \[sys\_pd\_process\_definition\] |
| label | String | The name of the duplicated playbook. |
| description | String | Optional. Add details about your playbook. |
| scopeId | String | The sys\_id of the application scope that you want your playbook to run in. The scoped name is from the Process Definition \[sys\_pd\_process\_definition\] table in the format `scope.name`. Entering the sys\_id for the global scope lets your playbook run in any application scope. |
| triggerTypeId | String | The sys\_id of the trigger from which to initiate playbook runs. Find the trigger type in the Trigger Type \[sys\_pd\_trigger\_type\] table and copy its sys\_id. |
| Property | Description |
|---|---|
| Object | Object containing process definition duplication details.``` { "errors": [Array] "processDefinitionSysId": "String", "state": "String" } ``` |
| errors | List of errors. Empty if successful. Data type: Array of String\(s\) Possible error messages: - `Scope not found for scopeId: xyz` - `Process definition not found for id: xyz` - `Trigger type not found for triggerTypeId: xyz` |
| processDefinitionSysId | The sys\_id of the new playbook in the Process Definitions \[sys\_pd\_process\_definition\] table.Data type: String |
| state | Indicates whether playbook duplication was successful.Possible values: - SUCCESS – The playbook was successfully duplicated. - FAILURE – The ID for the playbook, application scope, or trigger was not found. Data type: Object |