### Create Workspace Request Body Example (JSON) Source: https://www.twilio.com/docs/taskrouter/api/workspace Example JSON request body for creating a Workspace. Shows the required FriendlyName and optional EventCallbackUrl and Template parameters. ```json { "EventCallbackUrl": "/example", "FriendlyName": "friendly_name", "Template": "template" } ``` -------------------------------- ### GET /v1/Workspaces/{WorkspaceSid}/Workflows Source: https://www.twilio.com/docs/taskrouter/api/workflow This snippet documents the GET endpoint for listing workflows in a Twilio TaskRouter workspace. It includes the endpoint URL, parameters, request example, and response structure. ```APIDOC ## GET /v1/Workspaces/{WorkspaceSid}/Workflows ### Description Lists all workflows in a workspace. This endpoint returns a list of workflow resources, each containing details such as the friendly name, configuration, and associated URLs. ### Method GET ### Endpoint https://taskrouter.twilio.com/v1/Workspaces/{WorkspaceSid}/Workflows ### Parameters #### Path Parameters - **WorkspaceSid** (string) - Required - The SID of the Workspace that contains the Workflows to read. #### Query Parameters - **PageSize** (integer) - Optional - The number of records to return per page. In the example, PageSize is set to 20. ### Request Example ``` curl -X GET "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workflows?PageSize=20" \ -u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN ``` ### Response #### Success Response (200) - **meta** (object) - Metadata about the response, including pagination information. - **workflows** (array) - List of workflow resources. - **account_sid** (string) - The SID of the Account that created the resource. - **assignment_callback_url** (string) - The URL that will be called whenever a task managed by the Workflow is assigned to a Worker. - **configuration** (string) - The JSON string that contains the Workflow's configuration. - **date_created** (string) - The date and time in GMT when the resource was created. - **date_updated** (string) - The date and time in GMT when the resource was last updated. - **document_content_type** (string) - The MIME type of the document. - **fallback_assignment_callback_url** (string) - The URL that we call when a call to the assignment_callback_url fails. - **friendly_name** (string) - The string that you assigned to describe the Workflow resource. - **sid** (string) - The unique string that identifies the Workflow resource. - **task_reservation_timeout** (integer) - How long TaskRouter will wait for a confirmation response from your application before marking the assignment as rejected. - **url** (string) - The absolute URL of the Workflow resource. - **links** (object) - The URLs of related resources. - **workspace_sid** (string) - The SID of the Workspace that contains the Workflow. #### Response Example ```json { "meta": { "first_page_url": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workflows?FriendlyName=friendly_name&PageSize=50&Page=0", "key": "workflows", "next_page_url": null, "page": 0, "page_size": 50, "previous_page_url": null, "url": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workflows?FriendlyName=friendly_name&PageSize=50&Page=0" }, "workflows": [ { "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "assignment_callback_url": "http://example.com", "configuration": "task-routing:\\n - filter: \\n - 1 == 1\\n target:\\n - queue: WQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\\n set-priority: 0\\n", "date_created": "2014-05-14T10:50:02Z", "date_updated": "2014-05-15T16:47:51Z", "document_content_type": "application/json", "fallback_assignment_callback_url": null, "friendly_name": "Default Fifo Workflow", "sid": "WWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "task_reservation_timeout": 120, "url": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workflows/WWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "links": { "statistics": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workflows/WWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Statistics", "real_time_statistics": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workflows/WWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/RealTimeStatistics", "cumulative_statistics": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workflows/WWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/CumulativeStatistics" }, "workspace_sid": "WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" } ] } ``` ``` -------------------------------- ### Fetch a Workflow in Go Source: https://www.twilio.com/docs/taskrouter/api/workflow Go example using the Twilio helper library to fetch a Workflow. Requires TWILIO_ACCOUNT_SID and TWILIO_AUTH_TOKEN environment variables. Uses placeholder SIDs WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa and WWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa. ```go // Download the helper library from https://www.twilio.com/docs/go/install package main import ( "fmt" "github.com/twilio/twilio-go" "os" ) func main() { // Find your Account SID and Auth Token at twilio.com/console // and set the environment variables. See http://twil.io/secure // Make sure TWILIO_ACCOUNT_SID and TWILIO_AUTH_TOKEN exists in your environment client := twilio.NewRestClient() resp, err := client.TaskrouterV1.FetchWorkflow("WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "WWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") if err != nil { fmt.Println(err.Error()) os.Exit(1) } else { if resp.AccountSid != nil { fmt.Println(*resp.AccountSid) } else { fmt.Println(resp.AccountSid) } } } ``` -------------------------------- ### Fetch Workspace in Go Source: https://www.twilio.com/docs/taskrouter/api/workspace Go example using the Twilio helper library to fetch a Workspace and print its AccountSid. ```go // Download the helper library from https://www.twilio.com/docs/go/install package main import ( "fmt" "github.com/twilio/twilio-go" "os" ) func main() { // Find your Account SID and Auth Token at twilio.com/console // and set the environment variables. See http://twil.io/secure // Make sure TWILIO_ACCOUNT_SID and TWILIO_AUTH_TOKEN exists in your environment client := twilio.NewRestClient() resp, err := client.TaskrouterV1.FetchWorkspace("WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") if err != nil { fmt.Println(err.Error()) os.Exit(1) } else { if resp.AccountSid != nil { fmt.Println(*resp.AccountSid) } else { fmt.Println(resp.AccountSid) } } } ``` -------------------------------- ### GET /v1/Workspaces Source: https://www.twilio.com/docs/taskrouter/api/workspace This snippet documents the GET /v1/Workspaces endpoint for listing TaskRouter Workspaces. It includes the query parameter PageSize, a curl request example, and the full JSON response structure. ```APIDOC ## [GET] /v1/Workspaces ### Description Retrieves a list of Workspaces associated with the account. Supports pagination via the PageSize query parameter. ### Method GET ### Endpoint https://taskrouter.twilio.com/v1/Workspaces ### Parameters #### Query Parameters - **PageSize** (integer) - Optional - The number of Workspace resources to return per page. ### Request Example ``` curl -X GET "https://taskrouter.twilio.com/v1/Workspaces?PageSize=20" \ -u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN ``` ### Response #### Success Response (200) - **meta** (object) - Pagination metadata including first_page_url, key, next_page_url, page, page_size, previous_page_url, and url. - **workspaces** (array) - List of Workspace resources. Each workspace contains account_sid, date_created, date_updated, default_activity_name, default_activity_sid, event_callback_url, events_filter, friendly_name, links, multi_task_enabled, prioritize_queue_order, sid, timeout_activity_name, timeout_activity_sid, and url. #### Response Example ```json { "meta": { "first_page_url": "https://taskrouter.twilio.com/v1/Workspaces?FriendlyName=friendly_name&PageSize=50&Page=0", "key": "workspaces", "next_page_url": null, "page": 0, "page_size": 50, "previous_page_url": null, "url": "https://taskrouter.twilio.com/v1/Workspaces?FriendlyName=friendly_name&PageSize=50&Page=0" }, "workspaces": [ { "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "date_created": "2016-08-01T22:10:40Z", "date_updated": "2016-08-01T22:10:40Z", "default_activity_name": "Offline", "default_activity_sid": "WAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "event_callback_url": "", "events_filter": null, "friendly_name": "new", "links": { "activities": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Activities", "statistics": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Statistics", "real_time_statistics": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/RealTimeStatistics", "cumulative_statistics": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/CumulativeStatistics", "task_queues": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/TaskQueues", "tasks": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Tasks", "workers": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workers", "workflows": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workflows", "task_channels": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/TaskChannels", "events": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Events" }, "multi_task_enabled": false, "prioritize_queue_order": "FIFO", "sid": "WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "timeout_activity_name": "Offline", "timeout_activity_sid": "WAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "url": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" } ] } ``` ``` -------------------------------- ### GET /v1/Workspaces/{WorkspaceSid}/Events Source: https://www.twilio.com/docs/taskrouter/api/event This snippet documents the HTTP GET endpoint for listing events in a TaskRouter Workspace, including the required path parameter, optional query parameters, and a curl request example. ```APIDOC ## [GET] /v1/Workspaces/{WorkspaceSid}/Events ### Description List all events for a given Workspace, optionally filtered by start date and limited by page size. ### Method GET ### Endpoint `https://taskrouter.twilio.com/v1/Workspaces/{WorkspaceSid}/Events` ### Parameters #### Path Parameters - **WorkspaceSid** (string) - Required - The SID of the Workspace to list events for. #### Query Parameters - **StartDate** (string) - Optional - Only include events that occurred on or after this date, in ISO 8601 format. - **PageSize** (integer) - Optional - The maximum number of events to return per page. ### Request Example ``` curl -X GET "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Events?StartDate=2009-07-06T20:30:00Z&PageSize=20" \ -u $TWILIO_API_KEY:$TWILIO_API_SECRET ``` ### Response #### Success Response (200) - **events** (array) - A list of Event resources. - **accountSid** (string) - The SID of the Account that owns the Event. #### Response Example ``` { "events": [ { "accountSid": "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" } ] } ``` ``` -------------------------------- ### Fetch a Workflow in C# Source: https://www.twilio.com/docs/taskrouter/api/workflow C# example using the Twilio helper library to fetch a Workflow. Requires TWILIO_ACCOUNT_SID and TWILIO_AUTH_TOKEN environment variables. Uses placeholder SIDs WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa and WWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa. ```csharp // Install the C# / .NET helper library from twilio.com/docs/csharp/install using System; using Twilio; using Twilio.Rest.Taskrouter.V1.Workspace; using System.Threading.Tasks; class Program { public static async Task Main(string[] args) { // Find your Account SID and Auth Token at twilio.com/console // and set the environment variables. See http://twil.io/secure string accountSid = Environment.GetEnvironmentVariable("TWILIO_ACCOUNT_SID"); string authToken = Environment.GetEnvironmentVariable("TWILIO_AUTH_TOKEN"); TwilioClient.Init(accountSid, authToken); var workflow = await WorkflowResource.FetchAsync( pathWorkspaceSid: "WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", pathSid: "WWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); Console.WriteLine(workflow.AccountSid); } } ``` -------------------------------- ### GET /v1/Workspaces/{WorkspaceSid}/Tasks/{Sid} Source: https://www.twilio.com/docs/taskrouter/api/task This snippet documents the GET endpoint to fetch a specific Task from a Twilio TaskRouter Workspace. It includes the endpoint URL, path parameters, and the full response schema with example values. ```APIDOC ## [GET] /v1/Workspaces/{WorkspaceSid}/Tasks/{Sid} ### Description Fetches a specific Task from a Workspace in Twilio TaskRouter. ### Method GET ### Endpoint https://taskrouter.twilio.com/v1/Workspaces/{WorkspaceSid}/Tasks/{Sid} ### Parameters #### Path Parameters - **WorkspaceSid** (string) - Required - The SID of the Workspace that contains the Task. - **Sid** (string) - Required - The SID of the Task to fetch. ### Request Example No request body required. ### Response #### Success Response (200) - **account_sid** (string) - The SID of the Account that created the Task. - **age** (integer) - The age of the Task in seconds. - **assignment_status** (string) - The current assignment status of the Task. - **attributes** (string) - The JSON string of custom attributes for the Task. - **date_created** (string) - The date and time the Task was created. - **date_updated** (string) - The date and time the Task was last updated. - **task_queue_entered_date** (string) - The date and time the Task entered its current TaskQueue. - **virtual_start_time** (string) - The virtual start time of the Task. - **priority** (integer) - The priority of the Task. - **reason** (string) - The reason the Task was created. - **sid** (string) - The unique SID of the Task. - **task_queue_sid** (string) - The SID of the TaskQueue the Task is assigned to. - **task_channel_sid** (string) - The SID of the TaskChannel for the Task. - **task_channel_unique_name** (string) - The unique name of the TaskChannel. - **timeout** (integer) - The timeout value for the Task. - **url** (string) - The absolute URL of the Task resource. - **workflow_sid** (string) - The SID of the Workflow that controls the Task. - **workspace_sid** (string) - The SID of the Workspace that contains the Task. - **workflow_friendly_name** (string) - The friendly name of the Workflow. - **task_queue_friendly_name** (string) - The friendly name of the TaskQueue. - **ignore_capacity** (boolean) - Whether the Task can ignore capacity. - **routing_target** (string) - The routing target of the Task. - **addons** (string) - The addons data for the Task. - **links** (object) - URLs to related resources. #### Response Example { "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "age": 25200, "assignment_status": "pending", "attributes": "{\"body\": \"hello\"}", "date_created": "2014-05-14T18:50:02Z", "date_updated": "2014-05-15T07:26:06Z", "task_queue_entered_date": "2014-05-14T18:50:02Z", "virtual_start_time": "2014-05-14T18:50:02Z", "priority": 0, "reason": "Test Reason", "sid": "WTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "task_queue_sid": "WQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "task_channel_sid": "TCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "task_channel_unique_name": "task-channel", "timeout": 60, "url": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Tasks/WTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "workflow_sid": "WWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "workspace_sid": "WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "workflow_friendly_name": "Test Workflow", "task_queue_friendly_name": "Test Queue", "ignore_capacity": false, "routing_target": "WKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "addons": "{}", "links": { "task_queue": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/TaskQueues/WQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "workflow": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workflows/WWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "workspace": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "reservations": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Tasks/WTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Reservations" } } ``` -------------------------------- ### Fetch an Activity in Go Source: https://www.twilio.com/docs/taskrouter/api/activity Go example using the Twilio helper library to fetch an Activity. Requires TWILIO_ACCOUNT_SID and TWILIO_AUTH_TOKEN environment variables. Prints the activity's AccountSid or exits with error. ```go // Download the helper library from https://www.twilio.com/docs/go/install package main import ( "fmt" "github.com/twilio/twilio-go" "os" ) func main() { // Find your Account SID and Auth Token at twilio.com/console // and set the environment variables. See http://twil.io/secure // Make sure TWILIO_ACCOUNT_SID and TWILIO_AUTH_TOKEN exists in your environment client := twilio.NewRestClient() resp, err := client.TaskrouterV1.FetchActivity("WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "WAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") if err != nil { fmt.Println(err.Error()) os.Exit(1) } else { if resp.AccountSid != nil { fmt.Println(*resp.AccountSid) } else { fmt.Println(resp.AccountSid) } } } ``` -------------------------------- ### GET /v1/Workspaces/{WorkspaceSid}/Events Source: https://www.twilio.com/docs/taskrouter/api/event This endpoint lists all events from a specified start date. It supports pagination via the PageSize query parameter. ```APIDOC ## GET /v1/Workspaces/{WorkspaceSid}/Events ### Description List all events from a specified start date. ### Method GET ### Endpoint https://taskrouter.twilio.com/v1/Workspaces/{WorkspaceSid}/Events ### Parameters #### Path Parameters - **WorkspaceSid** (string) - Required - The SID of the Workspace to list events for. #### Query Parameters - **PageSize** (integer) - Optional - The number of events to return per page. ### Request Example ``` curl -X GET "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Events?PageSize=20" \ -u $TWILIO_API_KEY:$TWILIO_API_SECRET ``` ### Response #### Success Response (200) - **events** (array) - List of event objects. - **meta** (object) - Metadata about the response. #### Response Example ```json { "events": [ { "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "actor_sid": "WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "actor_type": "workspace", "actor_url": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "description": "Worker JustinWorker updated to Idle Activity", "event_data": { "worker_activity_name": "Offline", "worker_activity_sid": "WAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "worker_attributes": "{}", "worker_name": "JustinWorker", "worker_sid": "WKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "worker_time_in_previous_activity": "26", "worker_time_in_previous_activity_ms": "26123", "workspace_name": "WorkspaceName", "workspace_sid": "WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" }, "event_date": "2015-02-07T00:32:41Z", "event_date_ms": 987654321111, "event_type": "worker.activity", "resource_sid": "WKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "resource_type": "worker", "resource_url": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workers/WKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "sid": "EVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "source": "twilio", "source_ip_address": "1.2.3.4", "workspace_sid": "WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "url": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Events/EVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" } ], "meta": { "first_page_url": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Events?TaskQueueSid=WQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&StartDate=2008-01-02T00%3A00%3A00Z&EndDate=2008-01-03T00%3A00%3A00Z&WorkerSid=WKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&EventType=reservation.created&TaskSid=WTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&WorkflowSid=WWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&ReservationSid=WRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&PageSize=50&Page=0", "key": "events", "next_page_url": null, "page": 0, "page_size": 50, "previous_page_url": null, "url": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Events?TaskQueueSid=WQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&StartDate=2008-01-02T00%3A00%3A00Z&EndDate=2008-01-03T00%3A00%3A00Z&WorkerSid=WKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&EventType=reservation.created&TaskSid=WTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&WorkflowSid=WWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&ReservationSid=WRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&PageSize=50&Page=0" } } ``` ``` -------------------------------- ### Fetch Workspace in PHP Source: https://www.twilio.com/docs/taskrouter/api/workspace PHP example using the Twilio helper library to fetch a Workspace and print its accountSid. ```php taskrouter->v1 ->workspaces("WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") ->fetch(); print $workspace->accountSid; ``` -------------------------------- ### GET /v1/Workspaces/{WorkspaceSid}/Events/{Sid} Source: https://www.twilio.com/docs/taskrouter/api/event This snippet documents the HTTP endpoint for fetching an Event resource in Twilio TaskRouter, including path parameters and a response example. ```APIDOC ## GET https://taskrouter.twilio.com/v1/Workspaces/{WorkspaceSid}/Events/{Sid} ### Description Fetches a specific Event resource from a Workspace in Twilio TaskRouter. ### Method GET ### Endpoint https://taskrouter.twilio.com/v1/Workspaces/{WorkspaceSid}/Events/{Sid} ### Parameters #### Path Parameters - **WorkspaceSid** (string) - Required - The SID of the Workspace with the Event to fetch. Must match pattern ^WS[0-9a-fA-F]{32}$ and be 34 characters long. - **Sid** (string) - Required - The SID of the Event resource to fetch. Must match pattern ^EV[0-9a-fA-F]{32}$ and be 34 characters long. ### Response #### Success Response (200) Returns the Event resource. The response includes an `accountSid` field, as shown in the examples. #### Response Example ```json { "accountSid": "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" } ``` ``` -------------------------------- ### Fetch a Workflow in Java Source: https://www.twilio.com/docs/taskrouter/api/workflow Java example using the Twilio helper library to fetch a Workflow. Requires TWILIO_ACCOUNT_SID and TWILIO_AUTH_TOKEN environment variables. Uses placeholder SIDs WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa and WWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa. ```java // Install the Java helper library from twilio.com/docs/java/install import com.twilio.Twilio; import com.twilio.rest.taskrouter.v1.workspace.Workflow; public class Example { // Find your Account SID and Auth Token at twilio.com/console // and set the environment variables. See http://twil.io/secure public static final String ACCOUNT_SID = System.getenv("TWILIO_ACCOUNT_SID"); public static final String AUTH_TOKEN = System.getenv("TWILIO_AUTH_TOKEN"); public static void main(String[] args) { Twilio.init(ACCOUNT_SID, AUTH_TOKEN); Workflow workflow = Workflow.fetcher("WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "WWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa").fetch(); System.out.println(workflow.getAccountSid()); } } ``` -------------------------------- ### Fetch Workspace in Java Source: https://www.twilio.com/docs/taskrouter/api/workspace Java example using the Twilio helper library to fetch a Workspace and print its accountSid. ```java // Install the Java helper library from twilio.com/docs/java/install import com.twilio.Twilio; import com.twilio.rest.taskrouter.v1.Workspace; public class Example { // Find your Account SID and Auth Token at twilio.com/console // and set the environment variables. See http://twil.io/secure public static final String ACCOUNT_SID = System.getenv("TWILIO_ACCOUNT_SID"); public static final String AUTH_TOKEN = System.getenv("TWILIO_AUTH_TOKEN"); public static void main(String[] args) { Twilio.init(ACCOUNT_SID, AUTH_TOKEN); Workspace workspace = Workspace.fetcher("WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa").fetch(); System.out.println(workspace.getAccountSid()); } } ``` -------------------------------- ### GET /v1/Workspaces/{WorkspaceSid}/Workers/RealTimeStatistics Source: https://www.twilio.com/docs/taskrouter/api/worker/statistics Documentation for fetching real-time Worker statistics from the TaskRouter API, including the HTTP endpoint, parameters, and code examples in multiple languages. ```APIDOC ## GET /v1/Workspaces/{WorkspaceSid}/Workers/RealTimeStatistics ### Description Retrieve real-time statistics for Workers in a Workspace. This endpoint provides current Worker statistics, such as activity counts, and can be filtered by TaskChannel. ### Method GET ### Endpoint /v1/Workspaces/{WorkspaceSid}/Workers/RealTimeStatistics ### Parameters #### Path Parameters - **WorkspaceSid** (string) - Required - The SID of the Workspace with the resource to fetch. Must match pattern `^WS[0-9a-fA-F]{32}$` and be 34 characters long. #### Query Parameters - **TaskChannel** (string) - Optional - Only calculate real-time statistics on this TaskChannel. Can be the TaskChannel's SID or its `unique_name`, such as `voice`, `sms`, or `default`. ### Request Example ``` GET /v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workers/RealTimeStatistics?TaskChannel=voice ``` ### Response #### Success Response (200) - **accountSid** (string) - The SID of the Account that owns the Workspace. #### Response Example ```json { "accountSid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" } ``` ``` -------------------------------- ### List Events with Query Parameters (cURL) Source: https://www.twilio.com/docs/taskrouter/api/event Uses cURL to make a GET request to the TaskRouter Events API with start date and page size. Requires TWILIO_API_KEY and TWILIO_API_SECRET environment variables for basic authentication. ```bash curl -X GET "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Events?StartDate=2009-07-06T20:30:00Z&PageSize=20" \ -u $TWILIO_API_KEY:$TWILIO_API_SECRET ``` -------------------------------- ### Fetch a Workflow in PHP Source: https://www.twilio.com/docs/taskrouter/api/workflow PHP example using the Twilio helper library to fetch a Workflow. Requires TWILIO_ACCOUNT_SID and TWILIO_AUTH_TOKEN environment variables. Uses placeholder SIDs WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa and WWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa. ```php taskrouter->v1 ->workspaces("WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") ->workflows("WWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") ->fetch(); print $workflow->accountSid; ``` -------------------------------- ### List Events with Query Parameters (Twilio CLI) Source: https://www.twilio.com/docs/taskrouter/api/event Uses the Twilio CLI to list TaskRouter events with a start date and limit. Requires the twilio-cli to be installed. The workspace SID is passed via the --workspace-sid flag. ```bash # Install the twilio-cli from https://twil.io/cli twilio api:taskrouter:v1:workspaces:events:list \ --workspace-sid WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ --start-date 2009-07-06T20:30:00Z ``` -------------------------------- ### CreateWorkspaceTask.java - Main method and workspace setup Source: https://www.twilio.com/docs/taskrouter/tutorials/dynamic-call-center-java-servlets Java class that creates a TaskRouter workspace using provided arguments and workspace.json config. Expects 3 arguments: hostname, bobPhone, alicePhone. Uses Guice for dependency injection and WorkspaceFacade to create the workspace and add workers, task queues, and workflow. ```java package com.twilio.taskrouter.application; import com.google.inject.Guice; import com.google.inject.Injector; import com.twilio.rest.taskrouter.v1.workspace.Activity; import com.twilio.rest.taskrouter.v1.workspace.TaskQueue; import com.twilio.rest.taskrouter.v1.workspace.Workflow; import com.twilio.taskrouter.WorkflowRule; import com.twilio.taskrouter.WorkflowRuleTarget; import com.twilio.taskrouter.domain.common.TwilioAppSettings; import com.twilio.taskrouter.domain.common.Utils; import com.twilio.taskrouter.domain.error.TaskRouterException; import com.twilio.taskrouter.domain.model.WorkspaceFacade; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.text.StrSubstitutor; import javax.json.Json; import javax.json.JsonArray; import javax.json.JsonObject; import javax.json.JsonReader; import java.io.File; import java.io.IOException; import java.io.StringReader; import java.net.URISyntaxException; import java.net.URL; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; import java.util.Properties; import java.util.logging.Logger; import java.util.stream.Collectors; import static java.lang.System.exit; //import org.apache.commons.lang3.StringUtils; //import org.apache.commons.lang3.text.StrSubstitutor; /** * Creates a workspace */ class CreateWorkspaceTask { private static final Logger LOG = Logger.getLogger(CreateWorkspaceTask.class.getName()); public static void main(String[] args) { System.out.println("Creating workspace..."); if (args.length < 3) { System.out.println("You must specify 3 parameters:"); System.out.println("- Server hostname. E.g, .ngrok.com"); System.out.println("- Phone of the first agent (Bob)"); System.out.println("- Phone of the secondary agent (Alice)"); exit(1); } String hostname = args[0]; String bobPhone = args[1]; String alicePhone = args[2]; System.out.println(String.format("Server: %s\nBob phone: %s\nAlice phone: %s\n", hostname, bobPhone, alicePhone)); //Get the configuration JsonObject workspaceConfig = createWorkspaceConfig(args); //Get or Create the Workspace Injector injector = Guice.createInjector(); final TwilioAppSettings twilioSettings = injector.getInstance(TwilioAppSettings.class); String workspaceName = workspaceConfig.getString("name"); Map workspaceParams = new HashMap<>(); workspaceParams.put("FriendlyName", workspaceName); workspaceParams.put("EventCallbackUrl", workspaceConfig.getString("event_callback")); try { WorkspaceFacade workspaceFacade = WorkspaceFacade .create(twilioSettings.getTwilioRestClient(), workspaceParams); addWorkersToWorkspace(workspaceFacade, workspaceConfig); addTaskQueuesToWorkspace(workspaceFacade, workspaceConfig); Workflow workflow = addWorkflowToWorkspace(workspaceFacade, workspaceConfig); printSuccessAndExportVariables(workspaceFacade, workflow, twilioSettings); } catch (TaskRouterException e) { LOG.severe(e.getMessage()); exit(1); } } public static void addWorkersToWorkspace(WorkspaceFacade workspaceFacade, JsonObject workspaceJsonConfig) { JsonArray workersJson = workspaceJsonConfig.getJsonArray("workers"); Activity idleActivity = workspaceFacade.getIdleActivity(); workersJson.getValuesAs(JsonObject.class).forEach(workerJson -> { Map workerParams = new HashMap<>(); workerParams.put("FriendlyName", workerJson.getString("name")); workerParams.put("ActivitySid", idleActivity.getSid()); ``` -------------------------------- ### Fetch Workspace in C# Source: https://www.twilio.com/docs/taskrouter/api/workspace C# example using the Twilio helper library to fetch a Workspace and print its AccountSid. ```csharp // Install the C# / .NET helper library from twilio.com/docs/csharp/install using System; using Twilio; using Twilio.Rest.Taskrouter.V1; using System.Threading.Tasks; class Program { public static async Task Main(string[] args) { // Find your Account SID and Auth Token at twilio.com/console // and set the environment variables. See http://twil.io/secure string accountSid = Environment.GetEnvironmentVariable("TWILIO_ACCOUNT_SID"); string authToken = Environment.GetEnvironmentVariable("TWILIO_AUTH_TOKEN"); TwilioClient.Init(accountSid, authToken); var workspace = await WorkspaceResource.FetchAsync(pathSid: "WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); Console.WriteLine(workspace.AccountSid); } } ``` -------------------------------- ### Create TaskRouter Workflow with C# Source: https://www.twilio.com/docs/taskrouter/api/workflow Creates a TaskRouter Workflow with a task routing configuration that filters tasks by type (sales, marketing, support) and routes them to specific queues, with a default filter. Requires Twilio API credentials set as environment variables (TWILIO_API_KEY, TWILIO_API_SECRET, TWILIO_ACCOUNT_SID) and the C# helper library installed. The example uses placeholder queue SIDs (WQ...) and a workspace SID (WS...). ```csharp // Install the C# / .NET helper library from twilio.com/docs/csharp/install using System; using Twilio; using Twilio.Rest.Taskrouter.V1.Workspace; using System.Threading.Tasks; using System.Collections.Generic; using Newtonsoft.Json; class Program { public static async Task Main(string[] args) { // Find your Account SID at twilio.com/console // Provision API Keys at twilio.com/console/runtime/api-keys // and set the environment variables. See http://twil.io/secure // For local testing, you can use your Account SID and Auth token string apiKey = Environment.GetEnvironmentVariable("TWILIO_API_KEY"); string apiSecret = Environment.GetEnvironmentVariable("TWILIO_API_SECRET"); string accountSid = Environment.GetEnvironmentVariable("TWILIO_ACCOUNT_SID"); TwilioClient.Init(apiKey, apiSecret, accountSid); var workflow = await WorkflowResource.CreateAsync( assignmentCallbackUrl: new Uri("https://example.com/"), fallbackAssignmentCallbackUrl: new Uri("https://example2.com/"), configuration: JsonConvert.SerializeObject( new Dictionary() { { "task_routing", new Dictionary() { { "filters", new List { new Dictionary() { { "expression", "type=='sales'" }, { "targets", new List { new Dictionary() { { "queue", "WQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" } } } } }, new Dictionary() { { "expression", "type=='marketing'" }, { "targets", new List { new Dictionary() { { "queue", "WQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" } } } } }, new Dictionary() { { "expression", "type=='support'" }, { "targets", new List { new Dictionary() { { "queue", "WQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" } } } } } } }, { "default_filter", new Dictionary() { { "queue", "WQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" } } } } } }, Formatting.Indented), friendlyName: "Sales, Marketing, Support Workflow", pathWorkspaceSid: "WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); Console.WriteLine(workflow.AccountSid); } } ``` -------------------------------- ### Fetch an Activity in Python Source: https://www.twilio.com/docs/taskrouter/api/activity Python example using the Twilio helper library to fetch an Activity. Requires TWILIO_ACCOUNT_SID and TWILIO_AUTH_TOKEN environment variables. Prints the activity's account_sid. ```python # Download the helper library from https://www.twilio.com/docs/python/install import os from twilio.rest import Client # Find your Account SID and Auth Token at twilio.com/console # and set the environment variables. See http://twil.io/secure account_sid = os.environ["TWILIO_ACCOUNT_SID"] auth_token = os.environ["TWILIO_AUTH_TOKEN"] client = Client(account_sid, auth_token) activity = ( client.taskrouter.v1.workspaces("WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") .activities("WAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") .fetch() ) print(activity.account_sid) ``` -------------------------------- ### GET /v1/Workspaces/{WorkspaceSid} Source: https://www.twilio.com/docs/taskrouter/api/workspace This snippet documents the GET request to fetch a Workspace resource from the Twilio TaskRouter API. ```APIDOC ## [GET] /v1/Workspaces/{WorkspaceSid} ### Description Fetches a Workspace resource from Twilio TaskRouter. ### Method GET ### Endpoint https://taskrouter.twilio.com/v1/Workspaces/{WorkspaceSid} ### Parameters #### Path Parameters - **WorkspaceSid** (string) - Required - The SID of the Workspace to fetch. ### Request Example ```bash curl -X GET "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \ -u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN ``` ### Response #### Success Response (200) - **account_sid** (string) - The SID of the Account that created the Workspace. - **date_created** (string) - The date and time the Workspace was created. - **date_updated** (string) - The date and time the Workspace was last updated. - **default_activity_name** (string) - The name of the default activity. - **default_activity_sid** (string) - The SID of the default activity. - **event_callback_url** (string) - The URL for event callbacks. - **events_filter** (string) - The filter for events. - **friendly_name** (string) - The friendly name of the Workspace. - **links** (object) - URLs for related resources. - **multi_task_enabled** (boolean) - Whether multi-task is enabled. - **prioritize_queue_order** (string) - The queue order priority. - **sid** (string) - The SID of the Workspace. - **timeout_activity_name** (string) - The name of the timeout activity. - **timeout_activity_sid** (string) - The SID of the timeout activity. - **url** (string) - The URL of the Workspace resource. #### Response Example ```json { "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "date_created": "2016-08-01T22:10:40Z", "date_updated": "2016-08-01T22:10:40Z", "default_activity_name": "Offline", "default_activity_sid": "WAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "event_callback_url": "", "events_filter": null, "friendly_name": "new", "links": { "activities": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Activities", "statistics": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Statistics", "real_time_statistics": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/RealTimeStatistics", "cumulative_statistics": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/CumulativeStatistics", "task_queues": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/TaskQueues", "tasks": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Tasks", "workers": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workers", "workflows": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workflows", "task_channels": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/TaskChannels", "events": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Events" }, "multi_task_enabled": false, "prioritize_queue_order": "FIFO", "sid": "WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "timeout_activity_name": "Offline", "timeout_activity_sid": "WAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "url": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" } ``` ``` -------------------------------- ### Fetch a Workflow in Python Source: https://www.twilio.com/docs/taskrouter/api/workflow Python example using the Twilio helper library to fetch a Workflow. Requires TWILIO_ACCOUNT_SID and TWILIO_AUTH_TOKEN environment variables. Uses placeholder SIDs WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa and WWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa. ```python # Download the helper library from https://www.twilio.com/docs/python/install import os from twilio.rest import Client # Find your Account SID and Auth Token at twilio.com/console # and set the environment variables. See http://twil.io/secure account_sid = os.environ["TWILIO_ACCOUNT_SID"] auth_token = os.environ["TWILIO_AUTH_TOKEN"] client = Client(account_sid, auth_token) workflow = ( client.taskrouter.v1.workspaces("WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") .workflows("WWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") .fetch() ) print(workflow.account_sid) ``` -------------------------------- ### Task Attributes JSON Example Source: https://www.twilio.com/docs/taskrouter/api/task Example of Task attributes expressed in JSON. Use this structure to pass routing and assignment data with a Task. ```json { "type": "call", "contact": "+15558675309", "customer-value": "gold", "task-reason": "support", "callSid": "CA42ed11..." } ``` -------------------------------- ### Update Workflow Request Body Example Source: https://www.twilio.com/docs/taskrouter/api/workflow Example request body for updating a Workflow. Includes all optional fields: AssignmentCallbackUrl, Configuration, FallbackAssignmentCallbackUrl, FriendlyName, TaskReservationTimeout, and ReEvaluateTasks. ```json { "AssignmentCallbackUrl": "http://example.com", "Configuration": "configuration", "FallbackAssignmentCallbackUrl": "http://example.com", "FriendlyName": "friendly_name", "TaskReservationTimeout": 1, "ReEvaluateTasks": "false" } ```