curl --request GET \
--url https://api.duvo.ai/v2/automations/{automation_id}/process-roles \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.duvo.ai/v2/automations/{automation_id}/process-roles"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.duvo.ai/v2/automations/{automation_id}/process-roles', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.duvo.ai/v2/automations/{automation_id}/process-roles",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.duvo.ai/v2/automations/{automation_id}/process-roles"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.duvo.ai/v2/automations/{automation_id}/process-roles")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.duvo.ai/v2/automations/{automation_id}/process-roles")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"process_roles": {
"automation": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>"
},
"roles": [
{
"key": "<string>",
"label": "<string>",
"can_act_on_cases": true,
"can_view_manage": true,
"sees_all_dashboards": true,
"dashboards": [
{
"artifact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"link": "<string>",
"url": "<string>"
}
],
"members": [
{
"name": "<string>",
"email": "<string>"
}
],
"pending_invites": [
{
"email": "<string>"
}
]
}
],
"dashboards_shared_individually": [
{
"artifact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"link": "<string>",
"url": "<string>"
}
],
"dashboards_creator_only": [
{
"artifact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"link": "<string>",
"url": "<string>"
}
],
"roster": {
"complete": true,
"roles_total": 0,
"members_total": 0,
"pending_invites_total": 0
},
"links": {
"dashboards": [
{
"artifact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"link": "<string>"
}
],
"overview": "<string>",
"process": "<string>",
"past_runs": "<string>",
"requests": "<string>",
"policy": "<string>",
"people": "<string>",
"agents_queues": "<string>",
"revisions": "<string>",
"setup": "<string>",
"setup_start": "<string>",
"upload_files": "<string>",
"interview": "<string>",
"automation_proposal": "<string>"
},
"urls": {
"dashboards": [
{
"artifact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"link": "<string>"
}
],
"overview": "<string>",
"process": "<string>",
"past_runs": "<string>",
"requests": "<string>",
"policy": "<string>",
"people": "<string>",
"agents_queues": "<string>",
"revisions": "<string>",
"setup": "<string>",
"setup_start": "<string>",
"upload_files": "<string>",
"interview": "<string>",
"automation_proposal": "<string>"
}
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}List Process Roles
List the process roles of an automation (Operator, Executive, Approver and the like, defined on that one automation, not the team’s Admin/Member/Builder roles) with what each can do and who holds it. Answer “who can see X”, “who has which role” and “what does each role see” on an automation from this, not from team membership or dashboard sharing. Each role has its key (pass it to assignProcessMember), label, can_act_on_cases, can_view_manage, the dashboards it opens, its members and its pending_invites. dashboards_shared_individually are pinned dashboards a role alone does not open: say they must be shared with the person too. dashboards_creator_only read a live Connection and open only for their creator. When roster.complete is false the lists were cut off: say so, give the totals, and point to the People tab (urls.people) instead of saying who holds a role. Give the user the full urls, not the paths. Managers and above only.
curl --request GET \
--url https://api.duvo.ai/v2/automations/{automation_id}/process-roles \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.duvo.ai/v2/automations/{automation_id}/process-roles"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.duvo.ai/v2/automations/{automation_id}/process-roles', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.duvo.ai/v2/automations/{automation_id}/process-roles",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.duvo.ai/v2/automations/{automation_id}/process-roles"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.duvo.ai/v2/automations/{automation_id}/process-roles")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.duvo.ai/v2/automations/{automation_id}/process-roles")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"process_roles": {
"automation": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>"
},
"roles": [
{
"key": "<string>",
"label": "<string>",
"can_act_on_cases": true,
"can_view_manage": true,
"sees_all_dashboards": true,
"dashboards": [
{
"artifact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"link": "<string>",
"url": "<string>"
}
],
"members": [
{
"name": "<string>",
"email": "<string>"
}
],
"pending_invites": [
{
"email": "<string>"
}
]
}
],
"dashboards_shared_individually": [
{
"artifact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"link": "<string>",
"url": "<string>"
}
],
"dashboards_creator_only": [
{
"artifact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"link": "<string>",
"url": "<string>"
}
],
"roster": {
"complete": true,
"roles_total": 0,
"members_total": 0,
"pending_invites_total": 0
},
"links": {
"dashboards": [
{
"artifact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"link": "<string>"
}
],
"overview": "<string>",
"process": "<string>",
"past_runs": "<string>",
"requests": "<string>",
"policy": "<string>",
"people": "<string>",
"agents_queues": "<string>",
"revisions": "<string>",
"setup": "<string>",
"setup_start": "<string>",
"upload_files": "<string>",
"interview": "<string>",
"automation_proposal": "<string>"
},
"urls": {
"dashboards": [
{
"artifact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"link": "<string>"
}
],
"overview": "<string>",
"process": "<string>",
"past_runs": "<string>",
"requests": "<string>",
"policy": "<string>",
"people": "<string>",
"agents_queues": "<string>",
"revisions": "<string>",
"setup": "<string>",
"setup_start": "<string>",
"upload_files": "<string>",
"interview": "<string>",
"automation_proposal": "<string>"
}
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Was this page helpful?