Как настроить skip_if в рабочем процессе Twilio Taskrouter

Я разрабатываю Twilio Taskrouter.

Я не могу настроить skip_if на консоли, а также обновить API. https://www.twilio.com/docs/api/taskrouter/worker-presence

Пробовал Update API, в ответе JSON есть skip_if.

Но в консольном JSON нет skip_if.

Как мне настроить skip_if?

Спасибо @philnash. Мои коды ниже.

   public function test_retrieveWorkflow()
    {
        $account_sid = "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
        $auth_token = "xxxxxxxxxxxxxxx";
        $client = new Client($account_sid, $auth_token);

        $workspace_sid = "WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
        $workflow_sid = 'WWxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
        $workflow = $client->taskrouter
            ->workspaces($workspace_sid)
            ->workflows($workflow_sid)
            ->fetch();

        $configurations = json_decode($workflow->configuration, true);
        $filters = $configurations['task_routing']['filters'];
        foreach ($filters as &$filter) {
            foreach ($filter['targets'] as &$target) {
                $target['skip_if'] = 'workers.available == 0';
            }
        }

        $configurations['task_routing']['filters'] = $filters;
        $configurations = json_encode($configurations);
        $workflow = $workflow->update(['configuration' => $configurations]);
        var_dump($workflow);
    }

Извините, забыл написать ожидаемый результат. Перед этим выполните приведенный выше код.

{
"task_routing": {
    "filters": [
        {
            "targets": [
                {
                    "queue": "WQyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy",
                    "expression": "task.email==worker.email",
                    "timeout": "10"
                },
                {
                ...
                }
            ],
            "filter_friendly_name": "filter by email",
            "expression": "1==1"
        }
    ],
    "default_filter": {
        "queue": "WQxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    }
}

После выполнения приведенного выше кода ожидается результат в формате JSON.

{
    "task_routing": {
        "filters": [
            {
                "targets": [
                    {
                        "queue": "WQyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy",
                        "expression": "task.email==worker.email",
                        "timeout": "10",
                        "skip_if": "workers.available == 0"
                    },
                    {
                    ...
                    }
                ],
                "filter_friendly_name": "filter by email",
                "expression": "1==1"
            }
        ],
        "default_filter": {
            "queue": "WQxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        }
    }
}

Но моя консоль Twilio показывает перед выполнением JSON.


person 西口瑛一    schedule 23.10.2017    source источник
comment
Когда вы говорите, что я не могу настроить skip_if на консоли, где вы пытаетесь его настроить? Он должен быть в targets workflow.   -  person Rob Di Marco    schedule 23.10.2017
comment
Что именно вы пробовали? Можете ли вы указать используемый код и ожидаемые результаты?   -  person philnash    schedule 24.10.2017
comment
Спасибо @RobDiMarco. Пробовал настроить task_routing ›фильтры› цели ›skip_if.   -  person 西口瑛一    schedule 24.10.2017


Ответы (1)


TaskRouter PM здесь. Я обновил документацию по этой функции, которая должна ответить на все ваши вопросы:

https://www.twilio.com/docs/api/taskrouter/worker-presence

(в настоящее время он не отображается в консоли ни в одном из представлений - см. примечание в документации)

person Al Cook    schedule 01.11.2017
comment
Спасибо, я понимаю эти особенности;) - person 西口瑛一; 02.11.2017