activate_workflow
Activate ServiceNow workflows to automate processes and trigger automated actions within your instance.
Instructions
Activate a workflow in ServiceNow
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| workflow_id | Yes | Workflow ID or sys_id |
Implementation Reference
- The handler function that executes the activate_workflow tool. It unwraps parameters using ActivateWorkflowParams, authenticates, and sends a PATCH request to the ServiceNow wf_workflow table to set the workflow as active.def activate_workflow( auth_manager: AuthManager, server_config: ServerConfig, params: Dict[str, Any], ) -> Dict[str, Any]: """ Activate a workflow in ServiceNow. Args: auth_manager: Authentication manager server_config: Server configuration params: Parameters for activating a workflow Returns: Dict[str, Any]: Activated workflow details """ # Unwrap parameters if needed params = _unwrap_params(params, ActivateWorkflowParams) # Get the correct auth_manager and server_config try: auth_manager, server_config = _get_auth_and_config(auth_manager, server_config) except ValueError as e: logger.error(f"Error getting auth and config: {e}") return {"error": str(e)} workflow_id = params.get("workflow_id") if not workflow_id: return {"error": "Workflow ID is required"} # Prepare data for the API request data = { "active": "true", } # Make the API request try: headers = auth_manager.get_headers() url = f"{server_config.instance_url}/api/now/table/wf_workflow/{workflow_id}" response = requests.patch(url, headers=headers, json=data) response.raise_for_status() result = response.json() return { "workflow": result.get("result", {}), "message": "Workflow activated successfully", } except requests.RequestException as e: logger.error(f"Error activating workflow: {e}") return {"error": str(e)} except Exception as e: logger.error(f"Unexpected error activating workflow: {e}") return {"error": str(e)}
- Pydantic BaseModel defining the input schema for the activate_workflow tool, which requires a workflow_id.class ActivateWorkflowParams(BaseModel): """Parameters for activating a workflow.""" workflow_id: str = Field(..., description="Workflow ID or sys_id")
- src/servicenow_mcp/utils/tool_utils.py:532-538 (registration)Central registration of the activate_workflow tool in the tool_definitions dictionary. Maps the tool name to its implementation function, input schema model, return type, description, and serialization hint. This dictionary is loaded by the MCP server to expose the tool."activate_workflow": ( activate_workflow_tool, ActivateWorkflowParams, str, "Activate a workflow in ServiceNow", "str", # Tool returns simple message ),