1. Authenticate
Prerequisites
- You should have registered in our developer portal. Check this link about how to register an Account.
- You should request access to the playground, sandbox and production environment using our Support page. Here is the link to support page to request access to our environments.
- You should have an App created in your account to get the client id and client secret. Check this link about how to create an App.
Note : The time data attribute on APIs follows a 24-hour clock starting at 00:00 and ending at 23:59.
Authentication
The bearer token obtained after successful authentication should be passed as credential when calling this API for authentication. Check the Access Token API link for instructions on how to generate your bearer token.
2. Permissions
To Access Customer Support Tickets , the user must have "Service Tickets-Customer Support" permission. If you are unaware of your user permissions, contact your Account Administrator.
3. Get Information
Get Account Information
Master account Id and account Id need to be passed in the header for this API call. This is needed to indicate your legal entity.
Refer to the Accounts API for instructions on how to retrieve your account information. You may skip this step if you already know your master account Id and account Id.
Get Site Information
Retrieve the available facility information which are assigned to you. You need the site code to indicate to which facility you want to make a request.
Refer to the Sites API for instructions on how to retrieve your site information. You may skip this step if you already know your sites.
Get Location Information
Retrieve the available location information which are assigned to you. You need the location name to indicate to which location in the facility you want to make a request.
Refer to the Locations API for instructions on how to retrieve your location information. You may skip this step if you already know your locations.
4. Retrieve Customer Support information
The method can be used to retrieve details of a customer support ticket
Method | GET |
---|---|
End point | /v1/customer-support-tickets/{id} |
Headers | Authorization, Master-Account-Id, Account-Id |
Query Parameters | n/a |
Body | n/a |
Sample Curl Request
curl --location --request GET 'https://api.digitalrealty.com/v1/customer-support-tickets/<id>' \
--header 'Master-Account-Id: <Master-Account-Id>' \
--header 'Account-Id: <Account-Id>' \
--header 'Authorization: Bearer <access_token>'
Headers
Field Name | Mandatory | Type | Description |
---|---|---|---|
Master-Account-Id | true | string | Customer master account identifier. |
Account-Id | true | string | Customer account identifier. |
Authorization | true | string | Token-based authentication. |
Query Parameters
n/a
Body
n/a
Sample JSON Response
{
"id": "WO9334196",
"title": "title sample1",
"status": "New",
"site": "PHX015",
"location": "COLO 8 Starbucks Cage 8.04",
"requestType": "Facilities Request",
"category": "Fire/Safety",
"description": "Customer support description",
"customerReference": "Testing",
"createdOn": "2023-08-08 17:24:37",
"updatedOn": "2023-08-09 14:34:31",
"closedOn": "",
"createdBy": "Michael test",
"ticketType": "Customer Support",
"notificationRecipients": "fsl_test Testing",
"comments": []
}
Payload Description
Field Name | Type | Description |
---|---|---|
id | string(20) | Identifier of the Customer Support work order. |
title | string(160) | Label on the Customer Support work order. |
status | string(enum) | Designates the stage of the Customer Support ticket. values: [New, In Progress, Completed, Cancelled]. |
site | string(6) | Identifier of the DLR facility. |
location | string(40) | Identifier of customer premise within DLR facility. |
requestType | string(enum) | Type of Customer Support request. values: [check the RequestType Category table] |
category | string(enum) | The category of Customer Support request based on the request type. values: [check the RequestType Category table] |
description | string(32k) | Full description of support request. |
customerReference | string(40) | Customer Reference number. |
createdOn | string(date-time) | Date on which the work order was generated. format: [yyyy-MM-dd HH:mm:ss] timezone: [UTC]. |
updatedOn | string(date-time) | Last date on which the work order details were modified. format: [yyyy-MM-dd HH:mm:ss] timezone: [UTC]. |
closedOn | string(date-time) | Date on which the work order’s status was marked Completed. format: [yyyy-MM-dd HH:mm:ss] timezone: [UTC]. |
createdBy | string(40) | Designates the user that initially generated the work order. |
ticketType | string(enum) | Type of the ticket. value: [Customer Support] |
notificationRecipients | string(32k) | Personnel's email addresses designated to be notified of the request. You can add one or more email addresses in the field by inserting a comma as a separator : "email_1, email_2, email_3". |
comments | string | Comments for work order, |
The method can be used to retrieve all customer support tickets of the customers account.
Method | GET |
---|---|
End point | /v1/customer-support-tickets |
Headers | Authorization, Master-Account-Id, Account-Id |
Query Parameters | site, status, requestType, category, createdBy, size, page |
Body | n/a |
Sample Curl Request
curl --location --request GET 'https://api.digitalrealty.com/v1/customer-support-tickets' \
--header 'Master-Account-Id: <Master-Account-Id>' \
--header 'Account-Id: <Account-Id>' \
--header 'Authorization: Bearer <access_token>'
Headers
Field Name | Mandatory | Type | Description |
---|---|---|---|
Master-Account-Id | true | string | Customer master account identifier. |
Account-Id | true | string | Customer account identifier. |
Authorization | true | string | Token-based authentication. |
Query Parameters
Field Name | Mandatory | Type | Description |
---|---|---|---|
site | false | string(6) | Filter by the DLR facility that handles the request. |
status | false | string(enum) | Filter by state of the Customer Support. values: [New, In Progress, Completed, Cancelled] |
requestType | false | string(enum) | Type of Customer Support request. values: [check the RequestType Category table] |
category | false | string(enum) | Filter by the category of Customer Support request based on request type. values: [check the RequestType Category table] |
createdBy | false | string(40) | Filter by user who generated the work order. |
size | false | integer | The maximum number of search results to return. Default value: 25 |
page | false | integer | The page number of the returning search results. Default value: 0 |
Body
n/a
Sample JSON Response
{
"content": [
{
"id": "WO9333892",
"title": "Customer Support Title",
"status": "New",
"site": "PHX015",
"location": "",
"requestType": "Facilities Request",
"category": "Fire/Safety",
"createdOn": "2023-08-08 12:56:43",
"closedOn": "",
"updatedOn": "2023-08-08 12:56:43",
"createdBy": "portaluser QATest"
}
],
"pageable": {
"last": false,
"totalPages": 343,
"totalElements": 8567,
"size": 25,
"number": 0,
"numberOfElements": 25,
"first": true,
"empty": false
}
}
Payload Description
Field Name | Type | Description |
---|---|---|
id | string(20) | Identifier of the Customer Support order. |
title | string(160) | Label on the work order. |
status | string(enum) | Designates the stage of the Customer Support request. values: [New, In Progress, Completed, Cancelled] |
site | string(6) | Identifier of the DLR facility. |
location | string(40) | Identifier of customer premise within DLR facility. |
requestType | string(enum) | Type of Customer Support request. values: [check the RequestType Category table] |
category | string(enum) | The category of Customer Support request based on the request type. values: [check the RequestType Category table] |
createdOn | string(date-time) | Date on which the work order was generated. format: [yyyy-MM-dd HH:mm:ss] timezone: [UTC]. |
closedOn | string(date-time) | Date on which the work order’s status was marked Completed. format: [yyyy-MM-dd HH:mm:ss] timezone: [UTC]. |
updatedOn | string(date-time) | Last date on which the work order details were modified. format: [yyyy-MM-dd HH:mm:ss] timezone: [UTC]. |
createdBy | string(40) | Designates the user that initially generated the work order. |
5. Create a Customer Support Request
The method can be used to post a customer support request ticket.
Method | POST |
---|---|
End point | /v1/customer-support-tickets |
Headers | Authorization, Master-Account-Id, Account-Id, Content-Type |
Query Parameters | n/a |
Body | title, site, location, requestType, category, description, customerReference, notificationRecipients |
Sample Curl Request
curl --location --request POST 'https://api.digitalrealty.com/v1/customer-support-tickets' \
--header 'Master-Account-Id: <Master-Account-Id>' \
--header 'Account-Id: <Account-Id>' \
--header 'Authorization: Bearer <access_token>' \
--header 'Content-Type: application/json' \
--data-raw '{
"title": "Maintenance request",
"site": "IAD024",
"location": "Starbucks Cage F150-B",
"requestType": "Facilities Request",
"category": "Planned Maintenance",
"description": "Maintenance planned for week 28",
"customerReference": "REF01234",
"notificationRecipients": "jane_doe@email.com,jake_doe@email.com"
}'
Headers
Field Name | Mandatory | Type | Description |
---|---|---|---|
Master-Account-Id | true | string | Customer master account identifier. |
Account-Id | true | string | Customer account identifier. |
Authorization | true | string | Token-based authentication. |
Content-Type | true | string | Indicates the request body format. value: [application/json] |
Query Parameters
n/a
Body
Field Name | Mandatory | Type | Description |
---|---|---|---|
title | true | string(160) | Label on the work order. |
site | true | string(6) | Identifier of the DLR facility. |
location | false | string(40) | Identifier of customer premise within DLR facility. |
requestType | true | string(enum) | Type of Customer Support request. values: [check the RequestType Category table] |
category | true | string(enum) | The category of Customer Support request based on the request type. values: [check the RequestType Category table] |
description | true | string(32k) | Full description of support request. |
customerReference | false | string(40) | Customer Reference number. |
notificationRecipients | false | string(32k) | Personnel's email addresses designated to be notified of the request. You can add one or more email addresses in the field by inserting a comma as a separator : "email_1, email_2, email_3". |
Sample JSON Response
{
"id": "WO9334196",
"title": "title sample1",
"status": "New",
"site": "PHX015",
"location": "COLO 8 Starbucks Cage 8.04",
"requestType": "Facilities Request",
"category": "Fire/Safety",
"description": "Customer support description",
"customerReference": "Testing",
"createdOn": "2023-08-08 17:24:37",
"updatedOn": "2023-08-09 14:34:31",
"closedOn": "",
"createdBy": "Michael test",
"ticketType": "Customer Support",
"notificationRecipients": "fsl_test Testing"
}
Payload Description
Field Name | Type | Description |
---|---|---|
id | string(20) | Identifier of the Customer Support work order. |
title | string(160) | Label on the Customer Support work order. |
status | string(enum) | Designates the stage of the Customer Support ticket. values: [New, In Progress, Completed, Cancelled]. |
site | string(6) | Identifier of the DLR facility. |
location | string(40) | Identifier of customer premise within DLR facility. |
requestType | string(enum) | Type of Customer Support request. values: [check the RequestType Category table] |
category | string(enum) | The category of Customer Support request based on the request type. values: [check the RequestType Category table] |
description | string(32k) | Full description of support request. |
customerReference | string(40) | Customer Reference number. |
createdOn | string(date-time) | Date on which the work order was generated. format: [yyyy-MM-dd HH:mm:ss] timezone: [UTC]. |
updatedOn | string(date-time) | Last date on which the work order details were modified. format: [yyyy-MM-dd HH:mm:ss] timezone: [UTC]. |
closedOn | string(date-time) | Date on which the work order’s status was marked Completed. format: [yyyy-MM-dd HH:mm:ss] timezone: [UTC]. |
createdBy | string(40) | Designates the user that initially generated the work order. |
ticketType | string(enum) | Type of the ticket. value: [Customer Support] |
notificationRecipients | string(32k) | Personnel's email addresses designated to be notified of the request. You can add one or more email addresses in the field by inserting a comma as a separator : "email_1, email_2, email_3". |
6. Update Customer Support Information
The method can be used to update a customer support ticket while the ticket status is still "New" or "In Progress".
Method | PUT |
---|---|
End point | /v1/customer-support-tickets/{id} |
Headers | Authorization, Master-Account-Id, Account-Id, Content-Type |
Query Parameters | n/a |
Body | title, description, customerReference, notificationRecipients |
Sample Curl Request
curl --location --request PUT 'https://api.digitalrealty.com/v1/customer-support-tickets/<id>' \
--header 'Master-Account-Id: <Master-Account-Id, >' \
--header 'Account-Id: <Account-Id>' \
--header 'Authorization: Bearer <access_token>' \
--header 'Content-Type: application/json' \
--data-raw '{
"customerReference": "REF05678",
"notificationRecipients": "jane_doe@email.com,jake_doe@email.com"
}'
Headers
Field Name | Mandatory | Type | Description |
---|---|---|---|
Master-Account-Id | true | string | Customer master account identifier. |
Account-Id | true | string | Customer account identifier. |
Authorization | true | string | Token-based authentication. |
Content-Type | true | string | Indicates the request body. value: format [application/json] |
Query Parameters
n/a
Body
Field Name | Mandatory | Type | Description |
---|---|---|---|
customerReference | false | string(40) | Customer Reference number. |
notificationRecipients | false | string(32k) | Personnel's email addresses designated to be notified of the request. You can add one or more email addresses in the field by inserting a comma as a separator : "email_1, email_2, email_3". |
Sample JSON Response
{
"id": "WO9334196",
"title": "title sample1",
"status": "New",
"site": "PHX015",
"location": "COLO 8 Starbucks Cage 8.04",
"requestType": "Facilities Request",
"category": "Fire/Safety",
"description": "Customer support description",
"customerReference": "Testing",
"createdOn": "2023-08-08 17:24:37",
"updatedOn": "2023-08-09 14:34:31",
"closedOn": "",
"createdBy": "Michael test",
"ticketType": "Customer Support",
"notificationRecipients": "fsl_test Testing",
"comments": []
}
Payload Description
Field Name | Type | Description |
---|---|---|
id | string(20) | Identifier of the Customer Support work order. |
title | string(160) | Label on the Customer Support work order. |
status | string(enum) | Designates the stage of the Customer Support ticket. values: [New, In Progress, Completed, Cancelled]. |
site | string(6) | Identifier of the DLR facility. |
location | string(40) | Identifier of customer premise within DLR facility. |
requestType | string(enum) | Type of Customer Support request. values: [check the RequestType Category table] |
category | string(enum) | The category of Customer Support request based on the request type. values: [check the RequestType Category table] |
description | string(32k) | Full description of support request. |
customerReference | string(40) | Customer Reference number. |
createdOn | string(date-time) | Date on which the work order was generated. format: [yyyy-MM-dd HH:mm:ss] timezone: [UTC]. |
updatedOn | string(date-time) | Last date on which the work order details were modified. format: [yyyy-MM-dd HH:mm:ss] timezone: [UTC]. |
closedOn | string(date-time) | Date on which the work order’s status was marked Completed. format: [yyyy-MM-dd HH:mm:ss] timezone: [UTC]. |
createdBy | string(40) | Designates the user that initially generated the work order. |
ticketType | string(enum) | Type of the ticket. value: [Customer Support] |
notificationRecipients | string(32k) | Personnel's email addresses designated to be notified of the request. You can add one or more email addresses in the field by inserting a comma as a separator : "email_1, email_2, email_3". |
comments | string | Comments for work order, |
7. Cancel a Customer Support Request
The method can be used to cancel a customer support ticket while the ticket status is still "New" or "In Progress".
Method | PUT |
---|---|
End point | /v1/customer-support-tickets/{id}/cancel |
Headers | Authorization, Master-Account-Id, Account-Id |
Query Parameters | n/a |
Body | cancelReason |
Sample Curl Request
curl --location --request PUT 'https://api.digitalrealty.com/v1/customer-support-tickets/<id>/cancel' \
--header 'Master-Account-Id: <Master-Account-Id>' \
--header 'Account-Id: <Account-Id>' \
--header 'Authorization: Bearer <access_token>' \
--header 'Content-Type: application/json' \
--data-raw '{
"cancelReason": "Request no longer needed"
}'
Headers
Field Name | Mandatory | Type | Description |
---|---|---|---|
Master-Account-Id | true | string | Customer master account identifier. |
Account-Id | true | string | Customer account identifier. |
Authorization | true | string | Token-based authentication. |
Content-Type | true | string | Indicates the request body format. value: [application/json] |
Query Parameters
n/a
Body
Field Name | Mandatory | Type | Description |
---|---|---|---|
cancelReason | false | string(enum) | Reason of the cancellation. values: [Duplicate request, Request entered in error, Request no longer needed] default: [Request no longer needed] |
Sample JSON Response
{
"message": "ServiceTicket 'WO9334196' has been Cancelled"
}
Payload Description
Field Name | Type | Description |
---|---|---|
message | string(255) | Acknowledgement message of the cancellation. |
8. Get Customer Support Category
The method can be used to retrieve the available customer support categories supported by DLR. The categories are related to the request types. The category used must part of the request type used.
You may skip this step if you already know the customer support category.
Method | GET |
---|---|
End point | /v1/customer-support-tickets/categories |
Headers | Authorization, Master-Account-Id, Account-Id |
Query Parameters | requestType |
Body | n/a |
Sample Curl Request
curl --location --request GET 'https://api.digitalrealty.com/v1/customer-support-tickets/categories' \
--header 'Master-Account-Id: <Master-Account-Id>' \
--header 'Account-Id: <Account-Id>' \
--header 'Authorization: Bearer <access_token>'
Headers
Field Name | Mandatory | Type | Description |
---|---|---|---|
Master-Account-Id | true | string | Customer master account identifier. |
Account-Id | true | string | Customer account identifier. |
Authorization | true | string | Token-based authentication. |
Query Parameters
Field Name | Mandatory | Type | Description |
---|---|---|---|
requestType | true | string(enum) | Type of Customer Support request. values: [Account Management, Accounts Receivable, Facilities Request, Amenities, Cross Connect] |
Body
n/a
Sample JSON Response
{
"result": [
{
"requestType": {
"name": "Account Management",
"categories": [
{
"name": "User Account Inquiry"
}
]
}
},
{
"requestType": {
"name": "Accounts Receivable",
"categories": [
{
"name": "General Billing Inquiry"
}
]
}
},
{
"requestType": {
"name": "Facilities Request",
"categories": [
{
"name": "Cooling - Datacenter"
},
{
"name": "Cooling - Office"
},
{
"name": "Electrical"
},
{
"name": "Fire/Safety"
},
{
"name": "Planned Maintenance"
}
]
}
},
{
"requestType": {
"name": "Amenities",
"categories": [
{
"name": "Elevator"
},
{
"name": "Loading Dock"
},
{
"name": "Parking"
},
{
"name": "General Inquiry"
}
]
}
},
{
"requestType": {
"name": "Cross Connect",
"categories": [
{
"name": "New Install"
},
{
"name": "Change (Hot Cut)"
},
{
"name": "Disconnect"
}
]
}
}
]
}
Payload Description
Field Name | Type | Description |
---|---|---|
requestType - name | string(enum) | Name of the Customer Support Type values: [check the RequestType Category table] |
category - name | string(enum) | Name of the Customer Support Category values: [check the RequestType Category table] |
9. Add a Comment or Attachment
Add Comments
Add comments to an existing work order. Multiple comments can be added to a work order as long as the status of the order is not closed or cancelled. Refer to the Comments API instructions on how to add comments. You may skip this step if you already know how to add comments.
Add Attachments
Add attachments to an existing work order. Multiple attachments can be added to a work order as long as the status of the order is not closed or cancelled. Refer to the Attachments API for instructions on how to add attachments. You may skip this step if you already know how to add attachments.
RequestType Category table
RequestType | Category |
---|---|
Account Management | User Account Inquiry |
Accounts Receivable | General Billing Inquiry |
Facilities Request | Cooling - Datacenter |
Cooling - Office | |
Electrical | |
Fire/Safety | |
Planned Maintenance | |
Amenities | Elevator |
Loading Dock | |
Parking | |
General Inquiry | |
Cross Connect | New Install |
Change (Hot Cut) | |
Disconnect |