メニュー

Expand
Rate this page:

Thanks for rating this page!

We are always striving to improve our documentation quality, and your feedback is valuable to us. How could this documentation serve you better?

REST API: Workflows

Workflowは、Taskに優先度を付けてQueueにルーティングする方法、および時間の経過とともにTaskの優先度をエスカレートしたり、Queue間でTaskを移動したりする方法を制御します。 Workflowは、シンプルなJSONフォーマットで記述され、RESTAPIを使用して、またはアカウントポータルから、変更できます。

TaskをWorkspaceに追加する際に、そのTaskを制御するWorkflowを指定します。指定されたWorkflowは、TaskがWorkerに割り当てられるか、Queueから外されるか、または変更されるまで、TaskのQueueと優先度を管理します。

TaskがWorkerに割り当てられると、アプリケーションはWorkflowに設定されている AssignmentCallbackUrl へのコールバックを受信します。このとき、アプリケーションは、TaskをWorkerに配信するために必要なことを何でも(たとえば、通話の相手として選択されたWorkerの電話番号にダイヤルするようにTwilioに命令すること)実行できます。 Task割り当ての詳細については、こちらをご覧ください。

一般的に使用されるWorkflowの機能を示すWorkflowの構成例を次に示します。

{  
   "task_routing":{  
      "filters":[  
         {  
            "filter_friendly_name":"Gold Tickets",
            "expression":"customer_value == 'Gold' AND type == 'ticket'",
            "targets":[  
               {  
                  "queue":"WQ0123456789abcdef0123456789abcdef",
                  "priority":"2"
               }
            ]
         },
         {  
            "filter_friendly_name":"Silver and Bronze Tickets",
            "expression":"customer_value IN ['Silver', 'Bronze'] AND type == 'ticket'",
            "targets":[  
               {  
                  "queue":"WQabcdef0123456789abcdef0123456789",
                  "priority":"1",
                  "timeout":"300"
               },
               {  
                  "queue":"WQabcdef01234567890123456789abcdef"
               }
            ]
         },
         {  
            "filter_friendly_name":"Leads",
            "expression":"type == 'lead'",
            "targets":[  
               {  
                  "queue":"WQabcdef01234567890123456789abcdef",
                  "priority":"3"
               }
            ]
         }
      ],
      "default_filter":{  
         "queue":"WQabcdef01234567890123456789abcdef"
      }
   }
}

Workflowの定義の詳細については、こちらをご覧ください。

複数のWorkflow

1つのWorkspaceに複数のWorkflowを設定できます。 これにより、さまざまなタイプのアプリケーションや状況に応じて異なるルーティングルールを設定できます。

たとえば、コールセンターのあるWorkerグループは、電話とチャットの両方のTaskを処理します。これらの2つのTaskタイプは、サービスレベル目標とエージェント要件が異なります。 また、これらは異なる外部アプリケーションから発生します。 アプリケーションの関連を分離するために、コールセンターは、通話用とチャットリクエスト用の2つの個別のWorkflowが存在するWorkspaceを1つ作成します。

Taskの作成と割り当て

TaskをWorkspaceに追加するたびに、どのWorkflowでこのTaskをルーティングする必要があるかを指定します。 Workflowは、Taskに優先度を付けてQueueに入れます。QueueにあるTaskは、必要なケイパビリティを備えた使用可能なWorkerに割り当てられます。 詳細については、Taskリソースをご覧ください。

AssignmentCallbackUrl によるTask割り当ての処理

すべてのWorkflowに AssignmentCallbackURL プロパティ(および最初のURLへのリクエスト送信に失敗した場合に使用する FallbackAssignmentCallbackUrl)があります。 WorkerにTaskが割り当てられると、TaskRouterは、このURLにHTTPリクエストを送信します。 アプリケーションはこのリクエストを処理して、アプリケーションでTaskをWorkerに接続するために必要なことを何でも実行する必要があります。 これはたとえば、案件をエージェントのWebアプリケーションのインスタンスにプッシュすること、またはTwilioを使用してエージェントの電話番号にダイヤルすることを意味します。 Task割り当てコールバックの処理の詳細については、この節をご覧ください。

Important: If we cannot hit your AssignmentCallbackUrl or FallbackAssignmentCallbackUrl, your Reservation will be automatically canceled. A good first run experience is to utilize PostBin to debug that the AssignmentCallback is firing correctly and to examine the contents of the post. AssignmentCallbackUrl is not required if you are planning on using just the JS SDK, and in that case simply set the value to blank.

アクション


全Workflowを一覧する

リソースURI

GET /v1/Workspaces/{WorkspaceSid}/Workflows

{WorkspaceSid} で指定されるWorkspace内のすべてのWorkflowのリストを返します。

Workspaceに存在するWorkflowを一覧する例

        
        
        
        

        リストフィルター

        下記のGETのクエリー文字列パラメーターを使用すると、返される一覧を制限することができます。 パラメーターは大文字と小文字を区別することに注意してください:

        フィールド 概要
        FriendlyName このWorkflowの、人間が読みやすい形式の説明(例:"Customer Support"、"2014 Election Campaign")です。

        メモ: 既定では、最初の50のWorkflowが返されます。 それよりも多くのWorkflowを取得する場合は、PageSizeパラメーターを指定してください。 詳細については、「ページ情報」を参照してください。


        ワークフローを作成する

        リソースURI

        POST /v1/Workspaces/{WorkspaceSid}/Workflows
        

        新しいWorkflowを作成します。

        Workspaceに新しいWorkflowを作成する例

              
              
              
              
              必須パラメーター
              パラメーター 概要
              FriendlyName A string representing a human readable name for this Workflow. Examples include 'Inbound Call Workflow' or '2014 Outbound Campaign'. (📇 PII )
              Configuration JSON document configuring the rules for this Workflow. See Configuring Workflows for more information. (🏢 not PII )
              オプションパラメーター
              パラメーター 概要
              AssignmentCallbackUrl A valid URL for the application that will process task assignment events. See Handling Task Assignment Callback for more details. (🏢 not PII )
              FallbackAssignmentCallbackUrl If the request to the AssignmentCallbackUrl fails, the assignment callback will be made to this URL. (🏢 not PII )
              TaskReservationTimeout An integer value controlling how long in seconds TaskRouter will wait for a confirmation response from your application after assigning a Task to a worker. See Task Assignment Callback for more information. Defaults to 120 seconds. Maximum value is 86400 (24 hours) (🏢 not PII )

              メモ: 所定のWorkspaceに許容されるWorkflowの最大数は1,000です。 それよりも多くを必要とする事例の場合は、ご連絡ください


              Workflowを取得する

              リソースURI

              GET /v1/Workspaces/{WorkspaceSid}/Workflows/{WorkflowSid}
              

              {WorkflowSid} で識別される単一の Workflow リソースを返します。

              Workspace内の単一のWorkflowを取得する例

                    
                    
                    
                    

                    リソースのプロパティ

                    Workflow インスタンスリソースには、次のプロパティがあります。

                    フィールド 概要
                    Sid Workflowの一意なIDです。
                    AccountSid このWorkflowを所有するアカウントのIDです
                    WorkspaceSid このWorkflowが含まれるWorkspaceのIDです。
                    FriendlyName このWorkflowの、人間が読みやすい形式の説明(例:"Customer Support"、"2014 Election Campaign")です。
                    AssignmentCallbackUrl このWorkflowで管理しているTaskがWorkerに割り当てられるたびに呼び出されるURLです。 詳細については、割り当てコールバックURLをご覧ください。
                    FallbackAssignmentCallbackUrl AssignmentCallbackUrl に送信されたリクエストが失敗した場合、この URL に割り当てコールバックが送信されます。
                    Configuration このWorkflowのルールを設定するJSONドキュメントです。詳細については、Workflowを設定するを参照してください。
                    TaskReservationTimeout TaskがWorkerに割り当てられた後、開発者のアプリケーションからの確認レスポンスをどのくらい待機するかを指定します。 既定値は120秒です。 最大値は86400 (24時間) です
                    DateCreated このWorkflowが作成された日付です。
                    DateUpdated このWorkflowが最後に更新された日付です。

                    Workflowを更新する

                    リソースURI

                    POST /v1/Workspaces/{WorkspaceSid}/Workflows/{WorkflowSid}
                    

                    Workflowを変更します。Workflowを変更するたびに、次の処理が行われます。

                    • Workflow構成を検証して、構文的に正しいことおよびドキュメントで参照しているQueueが存在することを保証します。 問題が見つかった場合、更新は失敗して、アクティブなWorkflowが依然として有効です。
                    • 指定された構成に問題がない場合、TaskRouterは、変更前に保留中だったTaskをすべて変更前のWorkflowでルーティングします。変更直後から、新しいTaskは変更後のWorkflowを使い始めます。

                    Workflowを更新する例

                          
                          
                          
                          

                          以下のパラメーターを POST できます。

                          POSTパラメーター

                          パラメーター 概要
                          FriendlyName A string representing a human readable name for this Workflow. Examples include 'Customer Support' or 'Sales Team'. (📇 PII )
                          AssignmentCallbackUrl A valid URL for the application that will process task assignment events. See Handling Task Assignment Callback for more details. (🏢 not PII )
                          FallbackAssignmentCallbackUrl If the request to the AssignmentCallbackUrl fails, the assignment callback will be made to this URL. (🏢 not PII )
                          Configuration JSON document configuring the rules for this Workflow. See Configuring Workflows for more information. (🏢 not PII )
                          TaskReservationTimeout An integer value controlling how long in seconds TaskRouter will wait for a confirmation response from your application after assigning a Task to a worker. Defaults to 120 seconds. Maximum value is 86400 (24 hours) (🏢 not PII )
                          ReEvaluateTasks A boolean value to control whether pending Tasks should be re-evaluated on a workflow update. Set to ‘true' to immediately re-evaluate all pending Tasks, or set ‘false' (default) to retain existing functionality, which is to re-evaluate Tasks on a timeout. NOTE: In order for this to be set to true, a Configuration value must also be set. (🏢 not PII )

                          Workflowを削除する

                          リソースURI

                          DELETE /v1/Workspaces/{WorkspaceSid}/Workflows/{WorkflowSid}
                          

                          Workflowを削除します。 指定されたWorkflowで制御されている、保留中のTaskまたは予約されているTaskが存在する場合はエラーを返します。

                          Workflowを削除する例

                                
                                
                                
                                
                                Rate this page:

                                ヘルプが必要ですか?

                                誰しもが一度は考える「コーディングって難しい」。そんな時は、お問い合わせフォームから質問してください。 または、Stack Overflow でTwilioタグのついた情報から欲しいものを探してみましょう。