This application provides appointment functionality for scheduling a video call between an agent and a customer
You are viewing REST API documentation. This documentation is auto-generated from a swagger specification which itself is generated from annotations in the source code of the project. It is possible that this documentation includes bugs and that code samples are incomplete or wrong.
Authentication
- API Key (jwtBearerToken)
- Parameter Name: Authorization, in: header. Authentication and authorization using a valid JWT token
Appointments
Find all
GET /api/appointments/ HTTP/1.1
Accept: application/json
By default, all available appointments will be returned. Results can be filtered using any of the given query parameters.
- Supported values for query parameter 'sortField' are one of either: [start, end, duration, or id].
Required authorization: ROLE_AGENT, ROLE_SUPERVISOR or ROLE_CLIENT_SERVICE
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
organizerId | query | array[string] | false | List of organizer id values (comma seperated) |
duration | query | array[string] | false | List of duration values (comma seperated) |
range | query | array[string] | false | Start and end date range (comma seperated) |
pageSize | query | integer(int64) | false | Page size |
pageNumber | query | integer(int64) | false | Page number |
sortOrder | query | string | false | asc or desc |
sortField | query | string | false | Field to use for sort |
Detailed descriptions
organizerId: List of organizer id values (comma seperated)
Filters appointments where the appointment organizer equals one of the supplied user id values.
NOTE: When not authorized with ROLE_SUPERVISOR, this parameter will be ignored!
duration: List of duration values (comma seperated)
Filters appointments where the appointment duration equals one of the supplied duration values.
range: Start and end date range (comma seperated)
Filters appointments with a scheduled start and end date (in UTC) that falls within the supplied range.
Enumerated Values
Parameter | Value |
---|---|
sortOrder | asc |
sortOrder | desc |
Responses
Overview
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | FindAppointmentsResponsePaged |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Unauthorized | None |
403 | Forbidden | Forbidden | None |
404 | Not Found | StatusNotFound | None |
500 | Internal Server Error | Internal Server Error | None |
Examples
200 Response
{
"content": [
{
"applicationId": "bf8215e5-a39e-490a-a0e2-07df6a3d8c1f",
"duration": "PT5M0s",
"end": "2022-01-31T19:05:00.0Z",
"id": "f46f165d-383a-4432-9a3e-9c805a152e0c",
"interaction": {
"customFields": {
"property1": "string",
"property2": "string"
},
"routing": {
"properties": {
"deploymentId": "c461a74-af3a-4b55-a461-bafbf077a34e"
},
"type": "GENESYS_CLOUD_FLOW"
},
"state": "PENDING"
},
"locale": "en_US",
"metadata": {
"prop1": {}
},
"notes": "CRM ref: 3nv-1gt-4rt",
"notifications": [
{
"channel": "SMS",
"textBody": "Dear {{firstName}},\n\nYour video call is scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}",
"type": "CREATE"
},
{
"channel": "EMAIL",
"htmlBody": "<html><head><meta http-equiv=\"content-type\" content=\"text/html; charset=us-ascii\"></head><body style=\"overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;\"><div></div>Dear {{firstName}},<br></div><div><br><br>Your video call is scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}</div></body></html>",
"subject": "Appointment notification",
"textBody": "Dear {{firstName}},\n\nYour video call is scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}",
"type": "CREATE"
},
{
"channel": "SMS",
"period": "P1D",
"textBody": "Dear {{firstName}},\n\nThis is a reminder of your video call scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}",
"type": "REMINDER"
},
{
"channel": "SMS",
"period": "P5M",
"textBody": "Dear {{firstName}},\n\nYour video call is scheduled for today at {{dd-MM-yyyy}} {{time24}} {{zone}}.\n\nTo join please follow the link {{roomLink}}",
"type": "ROOM"
}
],
"notificationsActive": true,
"organizer": {
"id": "c59a1ee2-e71d-4370-9ac8-26de220104db",
"type": "CUSTOMER"
},
"participantIds": [
{
"id": "2460b086-8d27-4cd3-a7ef-cdc8b4c17f0c",
"type": "CUSTOMER"
},
{
"id": "36c1r718-9ab5-48c9-aeab-fas5f37b0ec4",
"type": "AGENT"
}
],
"start": "2022-01-31T19:00:00.0Z",
"timezone": "Europe/Berlin",
"title": "Product installation review"
}
],
"pageCount": 0,
"pageNumber": 1,
"pageSize": 25,
"sortField": "string",
"sortOrder": "asc",
"total": 0
}
To perform this operation, you must be authenticated by means of one of the following methods: jwtBearerToken
Code samples
- Shell
- Go
- Node
- Java
- Python
- Ruby
curl -X GET /api/appointments/ \
-H 'Accept: application/json' \ -H 'Authorization: API_KEY'
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
var body []byte
// body = ...
req, err := http.NewRequest("GET", "/api/appointments/", bytes.NewBuffer(body))
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const fetch = require('node-fetch');
const headers = {
'Accept': 'application/json', 'Authorization': 'API_KEY'
}
fetch('/api/appointments/', {
method: 'GET',
headers
})
.then(r => r.json())
.then((body) => {
console.log(body)
})
// This sample needs improvement.
URL obj = new URL("/api/appointments/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream())
);
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.get(
'/api/appointments/',
params={},
headers = headers)
print r.json()
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.get '/api/appointments/',
params: {}, headers: headers
p JSON.parse(result)
Schedule new
POST /api/appointments/basic HTTP/1.1
Accept: application/json
Schedules a new appointment as customer, requires otp verification
Required authorization: BASIC using OTP Verification
Responses
Overview
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | GetAppointmentResponse |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Unauthorized | None |
403 | Forbidden | Forbidden | None |
500 | Internal Server Error | Internal Server Error | None |
Examples
200 Response
{
"applicationId": "bf8215e5-a39e-490a-a0e2-07df6a3d8c1f",
"duration": "PT5M0s",
"end": "2022-01-31T19:05:00.0Z",
"id": "f46f165d-383a-4432-9a3e-9c805a152e0c",
"interaction": {
"customFields": {
"property1": "string",
"property2": "string"
},
"routing": {
"properties": {
"deploymentId": "c461a74-af3a-4b55-a461-bafbf077a34e"
},
"type": "GENESYS_CLOUD_FLOW"
},
"state": "PENDING"
},
"locale": "en_US",
"metadata": {
"prop1": {}
},
"notes": "CRM ref: 3nv-1gt-4rt",
"notifications": [
{
"channel": "SMS",
"textBody": "Dear {{firstName}},\n\nYour video call is scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}",
"type": "CREATE"
},
{
"channel": "EMAIL",
"htmlBody": "<html><head><meta http-equiv=\"content-type\" content=\"text/html; charset=us-ascii\"></head><body style=\"overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;\"><div></div>Dear {{firstName}},<br></div><div><br><br>Your video call is scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}</div></body></html>",
"subject": "Appointment notification",
"textBody": "Dear {{firstName}},\n\nYour video call is scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}",
"type": "CREATE"
},
{
"channel": "SMS",
"period": "P1D",
"textBody": "Dear {{firstName}},\n\nThis is a reminder of your video call scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}",
"type": "REMINDER"
},
{
"channel": "SMS",
"period": "P5M",
"textBody": "Dear {{firstName}},\n\nYour video call is scheduled for today at {{dd-MM-yyyy}} {{time24}} {{zone}}.\n\nTo join please follow the link {{roomLink}}",
"type": "ROOM"
}
],
"notificationsActive": true,
"organizer": {
"id": "c59a1ee2-e71d-4370-9ac8-26de220104db",
"type": "CUSTOMER"
},
"participantIds": [
{
"id": "2460b086-8d27-4cd3-a7ef-cdc8b4c17f0c",
"type": "CUSTOMER"
},
{
"id": "36c1r718-9ab5-48c9-aeab-fas5f37b0ec4",
"type": "AGENT"
}
],
"start": "2022-01-31T19:00:00.0Z",
"timezone": "Europe/Berlin",
"title": "Product installation review"
}
To perform this operation, you must be authenticated by means of one of the following methods: None
Code samples
- Shell
- Go
- Node
- Java
- Python
- Ruby
curl -X POST /api/appointments/basic \
-H 'Accept: application/json'
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
var body []byte
// body = ...
req, err := http.NewRequest("POST", "/api/appointments/basic", bytes.NewBuffer(body))
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const fetch = require('node-fetch');
const headers = {
'Accept': 'application/json'
}
fetch('/api/appointments/basic', {
method: 'POST',
headers
})
.then(r => r.json())
.then((body) => {
console.log(body)
})
// This sample needs improvement.
URL obj = new URL("/api/appointments/basic");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream())
);
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post(
'/api/appointments/basic',
params={},
headers = headers)
print r.json()
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post '/api/appointments/basic',
params: {}, headers: headers
p JSON.parse(result)
Update
PUT /api/appointments/ HTTP/1.1
Content-Type: application/json
Accept: application/json
Updates information of an existing appointment e.g. title, notes, metadata.
NOTE: Sending empty data will be treated as intentional, and will replace any previously saved information.
Required authorization: ROLE_AGENT, ROLE_SUPERVISOR or ROLE_CLIENT_SERVICE
Request body
{
"id": "f46f165d-383a-4432-9a3e-9c805a152e0c",
"interaction": {
"customFields": {
"property1": "string",
"property2": "string"
},
"routing": {
"properties": {
"deploymentId": "c461a74-af3a-4b55-a461-bafbf077a34e"
},
"type": "GENESYS_CLOUD_FLOW"
},
"state": "PENDING"
},
"metadata": {
"prop1": {}
},
"notes": "CRM ref: 3nv-1gt-4rt",
"title": "Product installation review"
}
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
body | body | UpdateAppointmentRequest | false | none |
Responses
Overview
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | GetAppointmentResponse |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Unauthorized | None |
403 | Forbidden | Forbidden | None |
404 | Not Found | StatusNotFound | None |
500 | Internal Server Error | Internal Server Error | None |
Examples
200 Response
{
"applicationId": "bf8215e5-a39e-490a-a0e2-07df6a3d8c1f",
"duration": "PT5M0s",
"end": "2022-01-31T19:05:00.0Z",
"id": "f46f165d-383a-4432-9a3e-9c805a152e0c",
"interaction": {
"customFields": {
"property1": "string",
"property2": "string"
},
"routing": {
"properties": {
"deploymentId": "c461a74-af3a-4b55-a461-bafbf077a34e"
},
"type": "GENESYS_CLOUD_FLOW"
},
"state": "PENDING"
},
"locale": "en_US",
"metadata": {
"prop1": {}
},
"notes": "CRM ref: 3nv-1gt-4rt",
"notifications": [
{
"channel": "SMS",
"textBody": "Dear {{firstName}},\n\nYour video call is scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}",
"type": "CREATE"
},
{
"channel": "EMAIL",
"htmlBody": "<html><head><meta http-equiv=\"content-type\" content=\"text/html; charset=us-ascii\"></head><body style=\"overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;\"><div></div>Dear {{firstName}},<br></div><div><br><br>Your video call is scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}</div></body></html>",
"subject": "Appointment notification",
"textBody": "Dear {{firstName}},\n\nYour video call is scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}",
"type": "CREATE"
},
{
"channel": "SMS",
"period": "P1D",
"textBody": "Dear {{firstName}},\n\nThis is a reminder of your video call scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}",
"type": "REMINDER"
},
{
"channel": "SMS",
"period": "P5M",
"textBody": "Dear {{firstName}},\n\nYour video call is scheduled for today at {{dd-MM-yyyy}} {{time24}} {{zone}}.\n\nTo join please follow the link {{roomLink}}",
"type": "ROOM"
}
],
"notificationsActive": true,
"organizer": {
"id": "c59a1ee2-e71d-4370-9ac8-26de220104db",
"type": "CUSTOMER"
},
"participantIds": [
{
"id": "2460b086-8d27-4cd3-a7ef-cdc8b4c17f0c",
"type": "CUSTOMER"
},
{
"id": "36c1r718-9ab5-48c9-aeab-fas5f37b0ec4",
"type": "AGENT"
}
],
"start": "2022-01-31T19:00:00.0Z",
"timezone": "Europe/Berlin",
"title": "Product installation review"
}
To perform this operation, you must be authenticated by means of one of the following methods: jwtBearerToken
Code samples
- Shell
- Go
- Node
- Java
- Python
- Ruby
curl -X PUT /api/appointments/ \
-H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -H 'Authorization: API_KEY'
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
var body []byte
// body = ...
req, err := http.NewRequest("PUT", "/api/appointments/", bytes.NewBuffer(body))
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const fetch = require('node-fetch');
const input = '{
"id": "f46f165d-383a-4432-9a3e-9c805a152e0c",
"interaction": {
"customFields": {
"property1": "string",
"property2": "string"
},
"routing": {
"properties": {
"deploymentId": "c461a74-af3a-4b55-a461-bafbf077a34e"
},
"type": "GENESYS_CLOUD_FLOW"
},
"state": "PENDING"
},
"metadata": {
"prop1": {}
},
"notes": "CRM ref: 3nv-1gt-4rt",
"title": "Product installation review"
}';
const headers = {
'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'API_KEY'
}
fetch('/api/appointments/', {
method: 'PUT',
body: input,
headers
})
.then(r => r.json())
.then((body) => {
console.log(body)
})
// This sample needs improvement.
URL obj = new URL("/api/appointments/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream())
);
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.put(
'/api/appointments/',
params={},
headers = headers)
print r.json()
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.put '/api/appointments/',
params: {}, headers: headers
p JSON.parse(result)
Delete
DELETE /api/appointments/{id} HTTP/1.1
Delete an appointment by its unique id.
Required authorization: ROLE_AGENT, ROLE_SUPERVISOR or ROLE_CLIENT_SERVICE
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
id | path | string | true | Unique appointment identifier |
Responses
Overview
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | No Content | None |
401 | Unauthorized | Unauthorized | None |
403 | Forbidden | Forbidden | None |
404 | Not Found | StatusNotFound | None |
500 | Internal Server Error | Internal Server Error | None |
To perform this operation, you must be authenticated by means of one of the following methods: jwtBearerToken
Code samples
- Shell
- Go
- Node
- Java
- Python
- Ruby
curl -X DELETE /api/appointments/{id} \
-H 'Authorization: API_KEY'
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"API_KEY"},
}
var body []byte
// body = ...
req, err := http.NewRequest("DELETE", "/api/appointments/{id}", bytes.NewBuffer(body))
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const fetch = require('node-fetch');
const headers = {
'Authorization': 'API_KEY'
}
fetch('/api/appointments/{id}', {
method: 'DELETE',
headers
})
.then(r => r.json())
.then((body) => {
console.log(body)
})
// This sample needs improvement.
URL obj = new URL("/api/appointments/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream())
);
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
import requests
headers = {
'Authorization': 'API_KEY'
}
r = requests.delete(
'/api/appointments/{id}',
params={},
headers = headers)
print r.json()
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'API_KEY'
}
result = RestClient.delete '/api/appointments/{id}',
params: {}, headers: headers
p JSON.parse(result)
Find
GET /api/appointments/{id} HTTP/1.1
Accept: application/json
Retrieve an existing appointment by its unique id.
Required authorization: ROLE_AGENT, ROLE_SUPERVISOR, ROLE_CUSTOMER or ROLE_CLIENT_SERVICE
NOTE: When accessing with ROLE_CUSTOMER the relevant 'conferenceId' from the JWT token will also be verified.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
id | path | string | true | Unique appointment identifier |
Responses
Overview
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | GetAppointmentResponse |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Unauthorized | None |
403 | Forbidden | Forbidden | None |
404 | Not Found | StatusNotFound | None |
500 | Internal Server Error | Internal Server Error | None |
Examples
200 Response
{
"applicationId": "bf8215e5-a39e-490a-a0e2-07df6a3d8c1f",
"duration": "PT5M0s",
"end": "2022-01-31T19:05:00.0Z",
"id": "f46f165d-383a-4432-9a3e-9c805a152e0c",
"interaction": {
"customFields": {
"property1": "string",
"property2": "string"
},
"routing": {
"properties": {
"deploymentId": "c461a74-af3a-4b55-a461-bafbf077a34e"
},
"type": "GENESYS_CLOUD_FLOW"
},
"state": "PENDING"
},
"locale": "en_US",
"metadata": {
"prop1": {}
},
"notes": "CRM ref: 3nv-1gt-4rt",
"notifications": [
{
"channel": "SMS",
"textBody": "Dear {{firstName}},\n\nYour video call is scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}",
"type": "CREATE"
},
{
"channel": "EMAIL",
"htmlBody": "<html><head><meta http-equiv=\"content-type\" content=\"text/html; charset=us-ascii\"></head><body style=\"overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;\"><div></div>Dear {{firstName}},<br></div><div><br><br>Your video call is scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}</div></body></html>",
"subject": "Appointment notification",
"textBody": "Dear {{firstName}},\n\nYour video call is scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}",
"type": "CREATE"
},
{
"channel": "SMS",
"period": "P1D",
"textBody": "Dear {{firstName}},\n\nThis is a reminder of your video call scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}",
"type": "REMINDER"
},
{
"channel": "SMS",
"period": "P5M",
"textBody": "Dear {{firstName}},\n\nYour video call is scheduled for today at {{dd-MM-yyyy}} {{time24}} {{zone}}.\n\nTo join please follow the link {{roomLink}}",
"type": "ROOM"
}
],
"notificationsActive": true,
"organizer": {
"id": "c59a1ee2-e71d-4370-9ac8-26de220104db",
"type": "CUSTOMER"
},
"participantIds": [
{
"id": "2460b086-8d27-4cd3-a7ef-cdc8b4c17f0c",
"type": "CUSTOMER"
},
{
"id": "36c1r718-9ab5-48c9-aeab-fas5f37b0ec4",
"type": "AGENT"
}
],
"start": "2022-01-31T19:00:00.0Z",
"timezone": "Europe/Berlin",
"title": "Product installation review"
}
To perform this operation, you must be authenticated by means of one of the following methods: jwtBearerToken
Code samples
- Shell
- Go
- Node
- Java
- Python
- Ruby
curl -X GET /api/appointments/{id} \
-H 'Accept: application/json' \ -H 'Authorization: API_KEY'
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
var body []byte
// body = ...
req, err := http.NewRequest("GET", "/api/appointments/{id}", bytes.NewBuffer(body))
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const fetch = require('node-fetch');
const headers = {
'Accept': 'application/json', 'Authorization': 'API_KEY'
}
fetch('/api/appointments/{id}', {
method: 'GET',
headers
})
.then(r => r.json())
.then((body) => {
console.log(body)
})
// This sample needs improvement.
URL obj = new URL("/api/appointments/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream())
);
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.get(
'/api/appointments/{id}',
params={},
headers = headers)
print r.json()
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.get '/api/appointments/{id}',
params: {}, headers: headers
p JSON.parse(result)
End appointment interaction state
PUT /api/appointments/{id}/end HTTP/1.1
Accept: application/json
End the state of an existing appointment interaction by its unique appointment id.
Required authorization: ROLE_AGENT
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
id | path | string | true | Unique appointment identifier |
Responses
Overview
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | GetAppointmentResponse |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Unauthorized | None |
403 | Forbidden | Forbidden | None |
404 | Not Found | StatusNotFound | None |
500 | Internal Server Error | Internal Server Error | None |
Examples
200 Response
{
"applicationId": "bf8215e5-a39e-490a-a0e2-07df6a3d8c1f",
"duration": "PT5M0s",
"end": "2022-01-31T19:05:00.0Z",
"id": "f46f165d-383a-4432-9a3e-9c805a152e0c",
"interaction": {
"customFields": {
"property1": "string",
"property2": "string"
},
"routing": {
"properties": {
"deploymentId": "c461a74-af3a-4b55-a461-bafbf077a34e"
},
"type": "GENESYS_CLOUD_FLOW"
},
"state": "PENDING"
},
"locale": "en_US",
"metadata": {
"prop1": {}
},
"notes": "CRM ref: 3nv-1gt-4rt",
"notifications": [
{
"channel": "SMS",
"textBody": "Dear {{firstName}},\n\nYour video call is scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}",
"type": "CREATE"
},
{
"channel": "EMAIL",
"htmlBody": "<html><head><meta http-equiv=\"content-type\" content=\"text/html; charset=us-ascii\"></head><body style=\"overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;\"><div></div>Dear {{firstName}},<br></div><div><br><br>Your video call is scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}</div></body></html>",
"subject": "Appointment notification",
"textBody": "Dear {{firstName}},\n\nYour video call is scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}",
"type": "CREATE"
},
{
"channel": "SMS",
"period": "P1D",
"textBody": "Dear {{firstName}},\n\nThis is a reminder of your video call scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}",
"type": "REMINDER"
},
{
"channel": "SMS",
"period": "P5M",
"textBody": "Dear {{firstName}},\n\nYour video call is scheduled for today at {{dd-MM-yyyy}} {{time24}} {{zone}}.\n\nTo join please follow the link {{roomLink}}",
"type": "ROOM"
}
],
"notificationsActive": true,
"organizer": {
"id": "c59a1ee2-e71d-4370-9ac8-26de220104db",
"type": "CUSTOMER"
},
"participantIds": [
{
"id": "2460b086-8d27-4cd3-a7ef-cdc8b4c17f0c",
"type": "CUSTOMER"
},
{
"id": "36c1r718-9ab5-48c9-aeab-fas5f37b0ec4",
"type": "AGENT"
}
],
"start": "2022-01-31T19:00:00.0Z",
"timezone": "Europe/Berlin",
"title": "Product installation review"
}
To perform this operation, you must be authenticated by means of one of the following methods: jwtBearerToken
Code samples
- Shell
- Go
- Node
- Java
- Python
- Ruby
curl -X PUT /api/appointments/{id}/end \
-H 'Accept: application/json' \ -H 'Authorization: API_KEY'
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
var body []byte
// body = ...
req, err := http.NewRequest("PUT", "/api/appointments/{id}/end", bytes.NewBuffer(body))
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const fetch = require('node-fetch');
const headers = {
'Accept': 'application/json', 'Authorization': 'API_KEY'
}
fetch('/api/appointments/{id}/end', {
method: 'PUT',
headers
})
.then(r => r.json())
.then((body) => {
console.log(body)
})
// This sample needs improvement.
URL obj = new URL("/api/appointments/{id}/end");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream())
);
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.put(
'/api/appointments/{id}/end',
params={},
headers = headers)
print r.json()
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.put '/api/appointments/{id}/end',
params: {}, headers: headers
p JSON.parse(result)
Delete participant
DELETE /api/appointments/{id}/participants/{pid} HTTP/1.1
Accept: application/json
Delete a participant from an existing appointment.
Required authorization: ROLE_AGENT or ROLE_SUPERVISOR
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
id | path | string | true | Unique appointment identifier |
participantId | path | string | true | Unique participant identifier |
Responses
Overview
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | GetAppointmentResponse |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Unauthorized | None |
403 | Forbidden | Forbidden | None |
404 | Not Found | StatusNotFound | None |
500 | Internal Server Error | Internal Server Error | None |
Examples
200 Response
{
"applicationId": "bf8215e5-a39e-490a-a0e2-07df6a3d8c1f",
"duration": "PT5M0s",
"end": "2022-01-31T19:05:00.0Z",
"id": "f46f165d-383a-4432-9a3e-9c805a152e0c",
"interaction": {
"customFields": {
"property1": "string",
"property2": "string"
},
"routing": {
"properties": {
"deploymentId": "c461a74-af3a-4b55-a461-bafbf077a34e"
},
"type": "GENESYS_CLOUD_FLOW"
},
"state": "PENDING"
},
"locale": "en_US",
"metadata": {
"prop1": {}
},
"notes": "CRM ref: 3nv-1gt-4rt",
"notifications": [
{
"channel": "SMS",
"textBody": "Dear {{firstName}},\n\nYour video call is scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}",
"type": "CREATE"
},
{
"channel": "EMAIL",
"htmlBody": "<html><head><meta http-equiv=\"content-type\" content=\"text/html; charset=us-ascii\"></head><body style=\"overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;\"><div></div>Dear {{firstName}},<br></div><div><br><br>Your video call is scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}</div></body></html>",
"subject": "Appointment notification",
"textBody": "Dear {{firstName}},\n\nYour video call is scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}",
"type": "CREATE"
},
{
"channel": "SMS",
"period": "P1D",
"textBody": "Dear {{firstName}},\n\nThis is a reminder of your video call scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}",
"type": "REMINDER"
},
{
"channel": "SMS",
"period": "P5M",
"textBody": "Dear {{firstName}},\n\nYour video call is scheduled for today at {{dd-MM-yyyy}} {{time24}} {{zone}}.\n\nTo join please follow the link {{roomLink}}",
"type": "ROOM"
}
],
"notificationsActive": true,
"organizer": {
"id": "c59a1ee2-e71d-4370-9ac8-26de220104db",
"type": "CUSTOMER"
},
"participantIds": [
{
"id": "2460b086-8d27-4cd3-a7ef-cdc8b4c17f0c",
"type": "CUSTOMER"
},
{
"id": "36c1r718-9ab5-48c9-aeab-fas5f37b0ec4",
"type": "AGENT"
}
],
"start": "2022-01-31T19:00:00.0Z",
"timezone": "Europe/Berlin",
"title": "Product installation review"
}
To perform this operation, you must be authenticated by means of one of the following methods: jwtBearerToken
Code samples
- Shell
- Go
- Node
- Java
- Python
- Ruby
curl -X DELETE /api/appointments/{id}/participants/{pid} \
-H 'Accept: application/json' \ -H 'Authorization: API_KEY'
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
var body []byte
// body = ...
req, err := http.NewRequest("DELETE", "/api/appointments/{id}/participants/{pid}", bytes.NewBuffer(body))
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const fetch = require('node-fetch');
const headers = {
'Accept': 'application/json', 'Authorization': 'API_KEY'
}
fetch('/api/appointments/{id}/participants/{pid}', {
method: 'DELETE',
headers
})
.then(r => r.json())
.then((body) => {
console.log(body)
})
// This sample needs improvement.
URL obj = new URL("/api/appointments/{id}/participants/{pid}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream())
);
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.delete(
'/api/appointments/{id}/participants/{pid}',
params={},
headers = headers)
print r.json()
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.delete '/api/appointments/{id}/participants/{pid}',
params: {}, headers: headers
p JSON.parse(result)
Get participant details
GET /api/appointments/{id}/participants/{pid} HTTP/1.1
Accept: application/json
Retrieves the details of a given participant belonging to an existing appointment.
Required authorization: ROLE_AGENT, ROLE_SUPERVISOR or ROLE_CUSTOMER
NOTE:
- Attempting to retrieve details of a participant type CUSTOMER after an appointment has expired may result in a 'StatusNotFound' error.
- When accessing with ROLE_CUSTOMER the relevant 'conferenceId' from the JWT token will also be verified.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
id | path | string | true | Unique appointment identifier |
participantId | path | string | true | Unique participant identifier |
Responses
Overview
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | GetParticipantDetailsResponse |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Unauthorized | None |
403 | Forbidden | Forbidden | None |
404 | Not Found | StatusNotFound | None |
500 | Internal Server Error | Internal Server Error | None |
Examples
200 Response
{
"contact": {
"primaryEmail": "user@provider.net",
"primaryPhone": "2102234988"
},
"id": "c59a1ee2-e71d-4370-9ac8-26de220104db",
"metadata": {
"refNo": "CS-9838"
},
"name": {
"firstName": "Bobby",
"lastName": "Ewing"
},
"type": "CUSTOMER",
"username": "ewingb@myorg.com"
}
To perform this operation, you must be authenticated by means of one of the following methods: jwtBearerToken
Code samples
- Shell
- Go
- Node
- Java
- Python
- Ruby
curl -X GET /api/appointments/{id}/participants/{pid} \
-H 'Accept: application/json' \ -H 'Authorization: API_KEY'
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
var body []byte
// body = ...
req, err := http.NewRequest("GET", "/api/appointments/{id}/participants/{pid}", bytes.NewBuffer(body))
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const fetch = require('node-fetch');
const headers = {
'Accept': 'application/json', 'Authorization': 'API_KEY'
}
fetch('/api/appointments/{id}/participants/{pid}', {
method: 'GET',
headers
})
.then(r => r.json())
.then((body) => {
console.log(body)
})
// This sample needs improvement.
URL obj = new URL("/api/appointments/{id}/participants/{pid}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream())
);
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.get(
'/api/appointments/{id}/participants/{pid}',
params={},
headers = headers)
print r.json()
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.get '/api/appointments/{id}/participants/{pid}',
params: {}, headers: headers
p JSON.parse(result)
Activate
POST /api/appointments/activate/{id} HTTP/1.1
Accept: application/json
Explicitly activate a previously scheduled appointment.
Required authorization: ROLE_CLIENT_SERVICE
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
id | path | string | true | Unique appointment identifier |
Responses
Overview
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | AppointmentActivationResponse |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Unauthorized | None |
403 | Forbidden | Forbidden | None |
404 | Not Found | StatusNotFound | None |
500 | Internal Server Error | Internal Server Error | None |
Examples
200 Response
{
"expires": "2022-01-31T19:00:00.0Z",
"type": "MULTI_USE_TICKET",
"url": "https://video.auvious.com/q/pij-gws"
}
To perform this operation, you must be authenticated by means of one of the following methods: jwtBearerToken
Code samples
- Shell
- Go
- Node
- Java
- Python
- Ruby
curl -X POST /api/appointments/activate/{id} \
-H 'Accept: application/json' \ -H 'Authorization: API_KEY'
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
var body []byte
// body = ...
req, err := http.NewRequest("POST", "/api/appointments/activate/{id}", bytes.NewBuffer(body))
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const fetch = require('node-fetch');
const headers = {
'Accept': 'application/json', 'Authorization': 'API_KEY'
}
fetch('/api/appointments/activate/{id}', {
method: 'POST',
headers
})
.then(r => r.json())
.then((body) => {
console.log(body)
})
// This sample needs improvement.
URL obj = new URL("/api/appointments/activate/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream())
);
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post(
'/api/appointments/activate/{id}',
params={},
headers = headers)
print r.json()
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post '/api/appointments/activate/{id}',
params: {}, headers: headers
p JSON.parse(result)
Find all scheduled appointments within a given range
GET /api/appointments/count?applicationId=bf8215e5-a39e-490a-a0e2-07df6a3d8c1f&start=2022-01-31T19%3A00%3A00.0Z&timeFrame=PT10H HTTP/1.1
Accept: application/json
Returns a count of distinct appointment schedules for a given application
Required authorization: NONE
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
applicationId | query | string | true | Unique application identifier |
start | query | string(date-time) | true | The date and time the appointment will start in UTC |
timeFrame | query | string(duration) | true | The duration that reflects a temporal dimension in which to search for scheduled appointments relative to each appointment start date |
Responses
Overview
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Inline |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Unauthorized | None |
403 | Forbidden | Forbidden | None |
500 | Internal Server Error | Internal Server Error | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [AppointmentCountResponse] | false | none | none |
» count | integer(int64) | false | none | Number of appointments allotted |
» duration | string | false | none | Scheduled duration |
» end | string(date-time) | false | none | Scheduled end date and time in UTC |
» start | string(date-time) | false | none | Scheduled start date and time in UTC |
» timezone | string | false | none | The time zone for this appointment |
Examples
200 Response
[
{
"count": 2,
"duration": "PT5M0s",
"end": "2022-01-31T19:05:00.0Z",
"start": "2022-01-31T19:00:00.0Z",
"timezone": "Europe/Berlin"
}
]
To perform this operation, you must be authenticated by means of one of the following methods: None
Code samples
- Shell
- Go
- Node
- Java
- Python
- Ruby
curl -X GET /api/appointments/count?applicationId=bf8215e5-a39e-490a-a0e2-07df6a3d8c1f&start=2022-01-31T19%3A00%3A00.0Z&timeFrame=PT10H \
-H 'Accept: application/json'
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
var body []byte
// body = ...
req, err := http.NewRequest("GET", "/api/appointments/count", bytes.NewBuffer(body))
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const fetch = require('node-fetch');
const headers = {
'Accept': 'application/json'
}
fetch('/api/appointments/count?applicationId=bf8215e5-a39e-490a-a0e2-07df6a3d8c1f&start=2022-01-31T19%3A00%3A00.0Z&timeFrame=PT10H', {
method: 'GET',
headers
})
.then(r => r.json())
.then((body) => {
console.log(body)
})
// This sample needs improvement.
URL obj = new URL("/api/appointments/count?applicationId=bf8215e5-a39e-490a-a0e2-07df6a3d8c1f&start=2022-01-31T19%3A00%3A00.0Z&timeFrame=PT10H");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream())
);
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get(
'/api/appointments/count',
params={
'applicationId': 'bf8215e5-a39e-490a-a0e2-07df6a3d8c1f',
'start': '2022-01-31T19:00:00.0Z',
'timeFrame': 'PT10H'},
headers = headers)
print r.json()
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get '/api/appointments/count',
params: {
'applicationId' => 'string',
'start' => 'string(date-time)',
'timeFrame' => 'string(duration)'}, headers: headers
p JSON.parse(result)
Find all eligible for activation
GET /api/appointments/eligible/?timeFrame={duration} HTTP/1.1
Accept: application/json
Find all scheduled appointments that are eligible for activation withing a specified time-frame. Eligibility will be calculated relative to the appointment start date.
Required authorization: ROLE_CLIENT_SERVICE
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
timeFrame | query | string(duration) | false | The duration that reflects a temporal dimension in which to search for eligible appointments relative to the appointment start date |
Responses
Overview
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Inline |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Unauthorized | None |
403 | Forbidden | Forbidden | None |
404 | Not Found | StatusNotFound | None |
500 | Internal Server Error | Internal Server Error | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [FindAppointmentsEligibleResponse] | false | none | none |
» eligibleFrom | string(date-time) | false | none | Date and time in UTC that activation is eligible from |
» id | string | false | none | Unique identifier of the appointment |
» start | string(date-time) | false | none | Scheduled start date and time in UTC for this appointment |
» timezone | string | false | none | The time zone for this appointment |
Examples
200 Response
[
{
"eligibleFrom": "2022-01-31T19:00:00.0Z",
"id": "f46f165d-383a-4432-9a3e-9c805a152e0c",
"start": "2022-01-31T19:00:00.0Z",
"timezone": "Europe/Berlin"
}
]
To perform this operation, you must be authenticated by means of one of the following methods: jwtBearerToken
Code samples
- Shell
- Go
- Node
- Java
- Python
- Ruby
curl -X GET /api/appointments/eligible/?timeFrame={duration} \
-H 'Accept: application/json' \ -H 'Authorization: API_KEY'
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
var body []byte
// body = ...
req, err := http.NewRequest("GET", "/api/appointments/eligible/?timeFrame={duration}", bytes.NewBuffer(body))
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const fetch = require('node-fetch');
const headers = {
'Accept': 'application/json', 'Authorization': 'API_KEY'
}
fetch('/api/appointments/eligible/?timeFrame={duration}', {
method: 'GET',
headers
})
.then(r => r.json())
.then((body) => {
console.log(body)
})
// This sample needs improvement.
URL obj = new URL("/api/appointments/eligible/?timeFrame={duration}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream())
);
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.get(
'/api/appointments/eligible/?timeFrame={duration}',
params={},
headers = headers)
print r.json()
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.get '/api/appointments/eligible/?timeFrame={duration}',
params: {}, headers: headers
p JSON.parse(result)
Get count of overlapping appointments
GET /api/appointments/overlap/count?applicationId=bf8215e5-a39e-490a-a0e2-07df6a3d8c1f&start=2022-01-31T19%3A00%3A00.0Z&duration=PT5M HTTP/1.1
Accept: application/json
Returns a count of all overlapping scheduled appointments for a given application
Required authorization: NONE
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
applicationId | query | string | true | Unique application identifier |
start | query | string(date-time) | true | The date and time the appointment will start in UTC |
duration | query | string(duration) | true | Allotted time for this appointment |
Responses
Overview
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | AppointmentOverlapResponse |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Unauthorized | None |
403 | Forbidden | Forbidden | None |
500 | Internal Server Error | Internal Server Error | None |
Examples
200 Response
{
"count": 0
}
To perform this operation, you must be authenticated by means of one of the following methods: None
Code samples
- Shell
- Go
- Node
- Java
- Python
- Ruby
curl -X GET /api/appointments/overlap/count?applicationId=bf8215e5-a39e-490a-a0e2-07df6a3d8c1f&start=2022-01-31T19%3A00%3A00.0Z&duration=PT5M \
-H 'Accept: application/json'
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
var body []byte
// body = ...
req, err := http.NewRequest("GET", "/api/appointments/overlap/count", bytes.NewBuffer(body))
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const fetch = require('node-fetch');
const headers = {
'Accept': 'application/json'
}
fetch('/api/appointments/overlap/count?applicationId=bf8215e5-a39e-490a-a0e2-07df6a3d8c1f&start=2022-01-31T19%3A00%3A00.0Z&duration=PT5M', {
method: 'GET',
headers
})
.then(r => r.json())
.then((body) => {
console.log(body)
})
// This sample needs improvement.
URL obj = new URL("/api/appointments/overlap/count?applicationId=bf8215e5-a39e-490a-a0e2-07df6a3d8c1f&start=2022-01-31T19%3A00%3A00.0Z&duration=PT5M");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream())
);
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get(
'/api/appointments/overlap/count',
params={
'applicationId': 'bf8215e5-a39e-490a-a0e2-07df6a3d8c1f',
'start': '2022-01-31T19:00:00.0Z',
'duration': 'PT5M'},
headers = headers)
print r.json()
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get '/api/appointments/overlap/count',
params: {
'applicationId' => 'string',
'start' => 'string(date-time)',
'duration' => 'string(duration)'}, headers: headers
p JSON.parse(result)
Add agent
POST /api/appointments/participants/agents/ HTTP/1.1
Content-Type: application/json
Accept: application/json
Add a participant of type AGENT to an existing appointment.
Required authorization: ROLE_AGENT or ROLE_SUPERVISOR
NOTE: Attempting to add an agent that already exists as a participant to a given appointment will result in a 'StatusConflict' error.
Request body
{
"id": "f46f165d-383a-4432-9a3e-9c805a152e0c",
"userId": "36c1r718-9ab5-48c9-aeab-fas5f37b0ec4"
}
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
body | body | AddParticipantAgentRequest | false | none |
Responses
Overview
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | GetAppointmentResponse |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Unauthorized | None |
403 | Forbidden | Forbidden | None |
404 | Not Found | StatusNotFound | None |
409 | Conflict | StatusConflict | None |
500 | Internal Server Error | Internal Server Error | None |
Examples
200 Response
{
"applicationId": "bf8215e5-a39e-490a-a0e2-07df6a3d8c1f",
"duration": "PT5M0s",
"end": "2022-01-31T19:05:00.0Z",
"id": "f46f165d-383a-4432-9a3e-9c805a152e0c",
"interaction": {
"customFields": {
"property1": "string",
"property2": "string"
},
"routing": {
"properties": {
"deploymentId": "c461a74-af3a-4b55-a461-bafbf077a34e"
},
"type": "GENESYS_CLOUD_FLOW"
},
"state": "PENDING"
},
"locale": "en_US",
"metadata": {
"prop1": {}
},
"notes": "CRM ref: 3nv-1gt-4rt",
"notifications": [
{
"channel": "SMS",
"textBody": "Dear {{firstName}},\n\nYour video call is scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}",
"type": "CREATE"
},
{
"channel": "EMAIL",
"htmlBody": "<html><head><meta http-equiv=\"content-type\" content=\"text/html; charset=us-ascii\"></head><body style=\"overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;\"><div></div>Dear {{firstName}},<br></div><div><br><br>Your video call is scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}</div></body></html>",
"subject": "Appointment notification",
"textBody": "Dear {{firstName}},\n\nYour video call is scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}",
"type": "CREATE"
},
{
"channel": "SMS",
"period": "P1D",
"textBody": "Dear {{firstName}},\n\nThis is a reminder of your video call scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}",
"type": "REMINDER"
},
{
"channel": "SMS",
"period": "P5M",
"textBody": "Dear {{firstName}},\n\nYour video call is scheduled for today at {{dd-MM-yyyy}} {{time24}} {{zone}}.\n\nTo join please follow the link {{roomLink}}",
"type": "ROOM"
}
],
"notificationsActive": true,
"organizer": {
"id": "c59a1ee2-e71d-4370-9ac8-26de220104db",
"type": "CUSTOMER"
},
"participantIds": [
{
"id": "2460b086-8d27-4cd3-a7ef-cdc8b4c17f0c",
"type": "CUSTOMER"
},
{
"id": "36c1r718-9ab5-48c9-aeab-fas5f37b0ec4",
"type": "AGENT"
}
],
"start": "2022-01-31T19:00:00.0Z",
"timezone": "Europe/Berlin",
"title": "Product installation review"
}
To perform this operation, you must be authenticated by means of one of the following methods: jwtBearerToken
Code samples
- Shell
- Go
- Node
- Java
- Python
- Ruby
curl -X POST /api/appointments/participants/agents/ \
-H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -H 'Authorization: API_KEY'
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
var body []byte
// body = ...
req, err := http.NewRequest("POST", "/api/appointments/participants/agents/", bytes.NewBuffer(body))
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const fetch = require('node-fetch');
const input = '{
"id": "f46f165d-383a-4432-9a3e-9c805a152e0c",
"userId": "36c1r718-9ab5-48c9-aeab-fas5f37b0ec4"
}';
const headers = {
'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'API_KEY'
}
fetch('/api/appointments/participants/agents/', {
method: 'POST',
body: input,
headers
})
.then(r => r.json())
.then((body) => {
console.log(body)
})
// This sample needs improvement.
URL obj = new URL("/api/appointments/participants/agents/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream())
);
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post(
'/api/appointments/participants/agents/',
params={},
headers = headers)
print r.json()
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post '/api/appointments/participants/agents/',
params: {}, headers: headers
p JSON.parse(result)
Add customer
POST /api/appointments/participants/customers/ HTTP/1.1
Content-Type: application/json
Accept: application/json
Add a participant of type CUSTOMER to an existing appointment.
Required authorization: ROLE_AGENT or ROLE_SUPERVISOR
Request body
{
"customer": {
"contact": {
"primaryEmail": "user@provider.net",
"primaryPhone": "2102234988"
},
"metadata": {
"refNo": "CS-9838"
},
"name": {
"firstName": "Bobby",
"lastName": "Ewing"
},
"username": "ewingb@myorg.com"
},
"id": "f46f165d-383a-4432-9a3e-9c805a152e0c"
}
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
body | body | AddParticipantCustomerRequest | false | none |
Responses
Overview
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | GetAppointmentResponse |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Unauthorized | None |
403 | Forbidden | Forbidden | None |
404 | Not Found | StatusNotFound | None |
500 | Internal Server Error | Internal Server Error | None |
Examples
200 Response
{
"applicationId": "bf8215e5-a39e-490a-a0e2-07df6a3d8c1f",
"duration": "PT5M0s",
"end": "2022-01-31T19:05:00.0Z",
"id": "f46f165d-383a-4432-9a3e-9c805a152e0c",
"interaction": {
"customFields": {
"property1": "string",
"property2": "string"
},
"routing": {
"properties": {
"deploymentId": "c461a74-af3a-4b55-a461-bafbf077a34e"
},
"type": "GENESYS_CLOUD_FLOW"
},
"state": "PENDING"
},
"locale": "en_US",
"metadata": {
"prop1": {}
},
"notes": "CRM ref: 3nv-1gt-4rt",
"notifications": [
{
"channel": "SMS",
"textBody": "Dear {{firstName}},\n\nYour video call is scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}",
"type": "CREATE"
},
{
"channel": "EMAIL",
"htmlBody": "<html><head><meta http-equiv=\"content-type\" content=\"text/html; charset=us-ascii\"></head><body style=\"overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;\"><div></div>Dear {{firstName}},<br></div><div><br><br>Your video call is scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}</div></body></html>",
"subject": "Appointment notification",
"textBody": "Dear {{firstName}},\n\nYour video call is scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}",
"type": "CREATE"
},
{
"channel": "SMS",
"period": "P1D",
"textBody": "Dear {{firstName}},\n\nThis is a reminder of your video call scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}",
"type": "REMINDER"
},
{
"channel": "SMS",
"period": "P5M",
"textBody": "Dear {{firstName}},\n\nYour video call is scheduled for today at {{dd-MM-yyyy}} {{time24}} {{zone}}.\n\nTo join please follow the link {{roomLink}}",
"type": "ROOM"
}
],
"notificationsActive": true,
"organizer": {
"id": "c59a1ee2-e71d-4370-9ac8-26de220104db",
"type": "CUSTOMER"
},
"participantIds": [
{
"id": "2460b086-8d27-4cd3-a7ef-cdc8b4c17f0c",
"type": "CUSTOMER"
},
{
"id": "36c1r718-9ab5-48c9-aeab-fas5f37b0ec4",
"type": "AGENT"
}
],
"start": "2022-01-31T19:00:00.0Z",
"timezone": "Europe/Berlin",
"title": "Product installation review"
}
To perform this operation, you must be authenticated by means of one of the following methods: jwtBearerToken
Code samples
- Shell
- Go
- Node
- Java
- Python
- Ruby
curl -X POST /api/appointments/participants/customers/ \
-H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -H 'Authorization: API_KEY'
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
var body []byte
// body = ...
req, err := http.NewRequest("POST", "/api/appointments/participants/customers/", bytes.NewBuffer(body))
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const fetch = require('node-fetch');
const input = '{
"customer": {
"contact": {
"primaryEmail": "user@provider.net",
"primaryPhone": "2102234988"
},
"metadata": {
"refNo": "CS-9838"
},
"name": {
"firstName": "Bobby",
"lastName": "Ewing"
},
"username": "ewingb@myorg.com"
},
"id": "f46f165d-383a-4432-9a3e-9c805a152e0c"
}';
const headers = {
'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'API_KEY'
}
fetch('/api/appointments/participants/customers/', {
method: 'POST',
body: input,
headers
})
.then(r => r.json())
.then((body) => {
console.log(body)
})
// This sample needs improvement.
URL obj = new URL("/api/appointments/participants/customers/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream())
);
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post(
'/api/appointments/participants/customers/',
params={},
headers = headers)
print r.json()
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post '/api/appointments/participants/customers/',
params: {}, headers: headers
p JSON.parse(result)
Reassign
PUT /api/appointments/reassign/ HTTP/1.1
Content-Type: application/json
Accept: application/json
Assign a new agent to an existing appointment. This action will replace the current owner and associated AGENT participant with the new AGENT user.
Required authorization: ROLE_AGENT or ROLE_SUPERVISOR
Request body
{
"id": "f46f165d-383a-4432-9a3e-9c805a152e0c",
"userId": "36c1r718-9ab5-48c9-aeab-fas5f37b0ec4"
}
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
body | body | AddParticipantAgentRequest | false | none |
Responses
Overview
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | GetAppointmentResponse |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Unauthorized | None |
403 | Forbidden | Forbidden | None |
404 | Not Found | StatusNotFound | None |
500 | Internal Server Error | Internal Server Error | None |
Examples
200 Response
{
"applicationId": "bf8215e5-a39e-490a-a0e2-07df6a3d8c1f",
"duration": "PT5M0s",
"end": "2022-01-31T19:05:00.0Z",
"id": "f46f165d-383a-4432-9a3e-9c805a152e0c",
"interaction": {
"customFields": {
"property1": "string",
"property2": "string"
},
"routing": {
"properties": {
"deploymentId": "c461a74-af3a-4b55-a461-bafbf077a34e"
},
"type": "GENESYS_CLOUD_FLOW"
},
"state": "PENDING"
},
"locale": "en_US",
"metadata": {
"prop1": {}
},
"notes": "CRM ref: 3nv-1gt-4rt",
"notifications": [
{
"channel": "SMS",
"textBody": "Dear {{firstName}},\n\nYour video call is scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}",
"type": "CREATE"
},
{
"channel": "EMAIL",
"htmlBody": "<html><head><meta http-equiv=\"content-type\" content=\"text/html; charset=us-ascii\"></head><body style=\"overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;\"><div></div>Dear {{firstName}},<br></div><div><br><br>Your video call is scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}</div></body></html>",
"subject": "Appointment notification",
"textBody": "Dear {{firstName}},\n\nYour video call is scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}",
"type": "CREATE"
},
{
"channel": "SMS",
"period": "P1D",
"textBody": "Dear {{firstName}},\n\nThis is a reminder of your video call scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}",
"type": "REMINDER"
},
{
"channel": "SMS",
"period": "P5M",
"textBody": "Dear {{firstName}},\n\nYour video call is scheduled for today at {{dd-MM-yyyy}} {{time24}} {{zone}}.\n\nTo join please follow the link {{roomLink}}",
"type": "ROOM"
}
],
"notificationsActive": true,
"organizer": {
"id": "c59a1ee2-e71d-4370-9ac8-26de220104db",
"type": "CUSTOMER"
},
"participantIds": [
{
"id": "2460b086-8d27-4cd3-a7ef-cdc8b4c17f0c",
"type": "CUSTOMER"
},
{
"id": "36c1r718-9ab5-48c9-aeab-fas5f37b0ec4",
"type": "AGENT"
}
],
"start": "2022-01-31T19:00:00.0Z",
"timezone": "Europe/Berlin",
"title": "Product installation review"
}
To perform this operation, you must be authenticated by means of one of the following methods: jwtBearerToken
Code samples
- Shell
- Go
- Node
- Java
- Python
- Ruby
curl -X PUT /api/appointments/reassign/ \
-H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -H 'Authorization: API_KEY'
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
var body []byte
// body = ...
req, err := http.NewRequest("PUT", "/api/appointments/reassign/", bytes.NewBuffer(body))
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const fetch = require('node-fetch');
const input = '{
"id": "f46f165d-383a-4432-9a3e-9c805a152e0c",
"userId": "36c1r718-9ab5-48c9-aeab-fas5f37b0ec4"
}';
const headers = {
'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'API_KEY'
}
fetch('/api/appointments/reassign/', {
method: 'PUT',
body: input,
headers
})
.then(r => r.json())
.then((body) => {
console.log(body)
})
// This sample needs improvement.
URL obj = new URL("/api/appointments/reassign/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream())
);
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.put(
'/api/appointments/reassign/',
params={},
headers = headers)
print r.json()
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.put '/api/appointments/reassign/',
params: {}, headers: headers
p JSON.parse(result)
Reschedule
PUT /api/appointments/reschedule/ HTTP/1.1
Content-Type: application/json
Accept: application/json
Modify the schedule of an existing appointment.
Required authorization: ROLE_AGENT, ROLE_SUPERVISOR or ROLE_CLIENT_SERVICE
Request body
{
"duration": "PT5M",
"id": "f46f165d-383a-4432-9a3e-9c805a152e0c",
"locale": "en-GB",
"start": "2022-01-31T19:00:00.0Z",
"timezone": "Europe/Berlin"
}
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
body | body | RescheduleAppointmentRequest | false | none |
Responses
Overview
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | GetAppointmentResponse |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Unauthorized | None |
403 | Forbidden | Forbidden | None |
404 | Not Found | StatusNotFound | None |
500 | Internal Server Error | Internal Server Error | None |
Examples
200 Response
{
"applicationId": "bf8215e5-a39e-490a-a0e2-07df6a3d8c1f",
"duration": "PT5M0s",
"end": "2022-01-31T19:05:00.0Z",
"id": "f46f165d-383a-4432-9a3e-9c805a152e0c",
"interaction": {
"customFields": {
"property1": "string",
"property2": "string"
},
"routing": {
"properties": {
"deploymentId": "c461a74-af3a-4b55-a461-bafbf077a34e"
},
"type": "GENESYS_CLOUD_FLOW"
},
"state": "PENDING"
},
"locale": "en_US",
"metadata": {
"prop1": {}
},
"notes": "CRM ref: 3nv-1gt-4rt",
"notifications": [
{
"channel": "SMS",
"textBody": "Dear {{firstName}},\n\nYour video call is scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}",
"type": "CREATE"
},
{
"channel": "EMAIL",
"htmlBody": "<html><head><meta http-equiv=\"content-type\" content=\"text/html; charset=us-ascii\"></head><body style=\"overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;\"><div></div>Dear {{firstName}},<br></div><div><br><br>Your video call is scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}</div></body></html>",
"subject": "Appointment notification",
"textBody": "Dear {{firstName}},\n\nYour video call is scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}",
"type": "CREATE"
},
{
"channel": "SMS",
"period": "P1D",
"textBody": "Dear {{firstName}},\n\nThis is a reminder of your video call scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}",
"type": "REMINDER"
},
{
"channel": "SMS",
"period": "P5M",
"textBody": "Dear {{firstName}},\n\nYour video call is scheduled for today at {{dd-MM-yyyy}} {{time24}} {{zone}}.\n\nTo join please follow the link {{roomLink}}",
"type": "ROOM"
}
],
"notificationsActive": true,
"organizer": {
"id": "c59a1ee2-e71d-4370-9ac8-26de220104db",
"type": "CUSTOMER"
},
"participantIds": [
{
"id": "2460b086-8d27-4cd3-a7ef-cdc8b4c17f0c",
"type": "CUSTOMER"
},
{
"id": "36c1r718-9ab5-48c9-aeab-fas5f37b0ec4",
"type": "AGENT"
}
],
"start": "2022-01-31T19:00:00.0Z",
"timezone": "Europe/Berlin",
"title": "Product installation review"
}
To perform this operation, you must be authenticated by means of one of the following methods: jwtBearerToken
Code samples
- Shell
- Go
- Node
- Java
- Python
- Ruby
curl -X PUT /api/appointments/reschedule/ \
-H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -H 'Authorization: API_KEY'
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
var body []byte
// body = ...
req, err := http.NewRequest("PUT", "/api/appointments/reschedule/", bytes.NewBuffer(body))
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const fetch = require('node-fetch');
const input = '{
"duration": "PT5M",
"id": "f46f165d-383a-4432-9a3e-9c805a152e0c",
"locale": "en-GB",
"start": "2022-01-31T19:00:00.0Z",
"timezone": "Europe/Berlin"
}';
const headers = {
'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'API_KEY'
}
fetch('/api/appointments/reschedule/', {
method: 'PUT',
body: input,
headers
})
.then(r => r.json())
.then((body) => {
console.log(body)
})
// This sample needs improvement.
URL obj = new URL("/api/appointments/reschedule/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream())
);
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.put(
'/api/appointments/reschedule/',
params={},
headers = headers)
print r.json()
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.put '/api/appointments/reschedule/',
params: {}, headers: headers
p JSON.parse(result)
Events
Get google event url
GET /api/cal/events/google/{id}/event HTTP/1.1
Get appointment event calendar google url
Required authorization: none
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
id | path | string | true | Unique appointment identifier |
Responses
Overview
Status | Meaning | Description | Schema |
---|---|---|---|
302 | Found | Found | None |
400 | Bad Request | Bad Request | None |
404 | Not Found | StatusNotFound | None |
500 | Internal Server Error | Internal Server Error | None |
To perform this operation, you must be authenticated by means of one of the following methods: None
Code samples
- Shell
- Go
- Node
- Java
- Python
- Ruby
curl -X GET /api/cal/events/google/{id}/event
package main
import (
"bytes"
"net/http"
)
func main() {
var body []byte
// body = ...
req, err := http.NewRequest("GET", "/api/cal/events/google/{id}/event", bytes.NewBuffer(body))
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const fetch = require('node-fetch');
fetch('/api/cal/events/google/{id}/event', {
method: 'GET'
})
.then(r => r.json())
.then((body) => {
console.log(body)
})
// This sample needs improvement.
URL obj = new URL("/api/cal/events/google/{id}/event");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream())
);
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
import requests
r = requests.get(
'/api/cal/events/google/{id}/event',
params={)
print r.json()
require 'rest-client'
require 'json'
result = RestClient.get '/api/cal/events/google/{id}/event',
params: {}
p JSON.parse(result)
Get ical event
GET /api/cal/events/ical/{id}/event HTTP/1.1
Get appointment event calendar in icalendar format
Required authorization: none
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
id | path | string | true | Unique appointment identifier |
Responses
Overview
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | None |
400 | Bad Request | Bad Request | None |
404 | Not Found | StatusNotFound | None |
500 | Internal Server Error | Internal Server Error | None |
To perform this operation, you must be authenticated by means of one of the following methods: None
Code samples
- Shell
- Go
- Node
- Java
- Python
- Ruby
curl -X GET /api/cal/events/ical/{id}/event
package main
import (
"bytes"
"net/http"
)
func main() {
var body []byte
// body = ...
req, err := http.NewRequest("GET", "/api/cal/events/ical/{id}/event", bytes.NewBuffer(body))
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const fetch = require('node-fetch');
fetch('/api/cal/events/ical/{id}/event', {
method: 'GET'
})
.then(r => r.json())
.then((body) => {
console.log(body)
})
// This sample needs improvement.
URL obj = new URL("/api/cal/events/ical/{id}/event");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream())
);
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
import requests
r = requests.get(
'/api/cal/events/ical/{id}/event',
params={)
print r.json()
require 'rest-client'
require 'json'
result = RestClient.get '/api/cal/events/ical/{id}/event',
params: {}
p JSON.parse(result)
Notifications
OTP email apptsvc confirmation
POST /api/notifications/emails/confirm HTTP/1.1
Content-Type: application/json
Complete the email apptsvc verification by sending the otp confirmation code received in the verification email message
Required authorization: ROLE_ADMIN
Request body
{
"applicationId": "bf8215e5-a39e-490a-a0e2-07df6a3d8c1f",
"code": "063780"
}
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
body | body | ServiceConfirmationRequest | false | none |
Responses
Overview
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | No Content | None |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Unauthorized | None |
403 | Forbidden | Forbidden | None |
404 | Not Found | StatusNotFound | None |
500 | Internal Server Error | Internal Server Error | None |
To perform this operation, you must be authenticated by means of one of the following methods: jwtBearerToken
Code samples
- Shell
- Go
- Node
- Java
- Python
- Ruby
curl -X POST /api/notifications/emails/confirm \
-H 'Content-Type: application/json' \ -H 'Authorization: API_KEY'
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
var body []byte
// body = ...
req, err := http.NewRequest("POST", "/api/notifications/emails/confirm", bytes.NewBuffer(body))
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const fetch = require('node-fetch');
const input = '{
"applicationId": "bf8215e5-a39e-490a-a0e2-07df6a3d8c1f",
"code": "063780"
}';
const headers = {
'Content-Type': 'application/json', 'Authorization': 'API_KEY'
}
fetch('/api/notifications/emails/confirm', {
method: 'POST',
body: input,
headers
})
.then(r => r.json())
.then((body) => {
console.log(body)
})
// This sample needs improvement.
URL obj = new URL("/api/notifications/emails/confirm");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream())
);
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
import requests
headers = {
'Content-Type': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post(
'/api/notifications/emails/confirm',
params={},
headers = headers)
print r.json()
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post '/api/notifications/emails/confirm',
params: {}, headers: headers
p JSON.parse(result)
Test an email notification
POST /api/notifications/emails/test HTTP/1.1
Content-Type: application/json
Test a specific email notification by explicitly sending an email message
Required authorization: ROLE_ADMIN
Request body
{
"applicationId": "bf8215e5-a39e-490a-a0e2-07df6a3d8c1f",
"channel": "EMAIL",
"htmlBody": "<html><head><meta http-equiv=\\\"content-type\\\" content=\\\"text/html; charset=us-ascii\\\"></head><body style=\\\"overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;\\\"><div></div>Dear {{firstName}},<br><br><div>This is a reminder of your video call that is scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}</div></body></html>.",
"locale": "en-GB",
"period": "P1D",
"subject": "Video appointment reminder",
"textBody": "Dear {{firstName}},\\n\\nThis is a reminder of your video call scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}",
"timezone": "Europe/Berlin",
"toEmail": "email@yourdomain.com",
"type": "REMINDER"
}
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
body | body | EmailNotificationRequest | false | none |
Responses
Overview
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | No Content | None |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Unauthorized | None |
403 | Forbidden | Forbidden | None |
404 | Not Found | StatusNotFound | None |
500 | Internal Server Error | Internal Server Error | None |
To perform this operation, you must be authenticated by means of one of the following methods: jwtBearerToken
Code samples
- Shell
- Go
- Node
- Java
- Python
- Ruby
curl -X POST /api/notifications/emails/test \
-H 'Content-Type: application/json' \ -H 'Authorization: API_KEY'
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
var body []byte
// body = ...
req, err := http.NewRequest("POST", "/api/notifications/emails/test", bytes.NewBuffer(body))
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
const fetch = require('node-fetch');
const input = '{
"applicationId": "bf8215e5-a39e-490a-a0e2-07df6a3d8c1f",
"channel": "EMAIL",
"htmlBody": "<html><head><meta http-equiv=\\\"content-type\\\" content=\\\"text/html; charset=us-ascii\\\"></head><body style=\\\"overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;\\\"><div></div>Dear {{firstName}},<br><br><div>This is a reminder of your video call that is scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}</div></body></html>.",
"locale": "en-GB",
"period": "P1D",
"subject": "Video appointment reminder",
"textBody": "Dear {{firstName}},\\n\\nThis is a reminder of your video call scheduled for {{dd-MM-yyyy}} {{time24}} {{zone}}",
"timezone": "Europe/Berlin",
"toEmail": "email@yourdomain.com",
"type": "REMINDER"
}';
const headers = {
'Content-Type': 'application/json', 'Authorization': 'API_KEY'
}
fetch('/api/notifications/emails/test', {
method: 'POST',
body: input,
headers
})
.then(r => r.json())
.then((body) => {
console.log(body)
})