OTS Integration API Documentation
This document is the documentation for using your BOSS811 account via the OTS Integration.
General information
API URL
The API URL is https://[your-account-subdomain].boss811.com/api/integrations/ots
and all the request URLs must be appended to this URL.
NB! Always use HTTPS as the protocol.
Request headers
With every request you must set the following Authorization and Content-Type headers:
- Authorization: Token token="your API key"
- Content-Type: application/json
Response codes
Response code | Returned when |
---|---|
200 OK | Successful GET request |
201 Created | Resource has been successfully created |
204 No Content | Resource has been successfully updated |
400 Bad Request | Request is erroneous (e.g a required parameter was not provided) |
401 Unauthorized | Failed API authorization |
402 Payment Required | API access is disabled for the Account or failed resource creation due to Account reaching a plan limit (e.g User limit) |
403 Forbidden | No access to a resource (e.g makes a User list request but has no User list permission) |
404 Not Found | Requested resource was not found |
422 Unprocessable Entity | Request was valid but failed because of validation errors (e.g the request tried to update a Ticket with invalid data) |
Other things to keep in mind
-
When a parameter is required, it is marked as "REQUIRED FIELD". All other fields are optional.
-
Request parameters must be encoded in UTF-8.
Tickets
Retrieving one Ticket
Thing | Value |
---|---|
URL | /tickets/by_center/:call_center_id/by_number/:ticket_number |
URL by Call Center, Ticket number and SA | /tickets/by_center/:call_center_id/by_number/:ticket_number/by_sa/:service_area |
Method | GET |
Response | Ticket |
Example response:
{
"id": 8915,
"ticket_number": "06191-285-085",
"reference_ticket_number": "06191-281-082",
"version_number": 0,
"sequence_number": 84,
"ticket_type": "Normal",
"ticket_action": "NEW",
"ticket_source": null,
"service_area": "EXMPL01",
"additional_service_areas": ["EXMPL02", "FOR02", "ATL03"],
"status": "assigned",
"created_at": "2016-06-29T15:29:36.947Z",
"updated_at": "2016-10-11T18:42:16.202Z",
"closed_at": null,
"taken_at": "2016-06-29T15:26:47.000Z",
"work_start_at": "2016-07-03T09:00:00.000Z",
"response_due_at": "2016-07-02T06:59:59.000Z",
"remarks": "Re-mark this remark pls",
"response_status": "not_available",
"excavator": {
"type": "Contractor",
"name": "SHOVEL INC",
"address": "12 OAK RD, NORCROSS, GA 31235",
"phone": "9382 23092 33",
"contact": {
"name": "JACK POT",
"phone": "7911927565 | Alternate: 89419284",
"email": "JACKPOT@EXAMPLE.COM"
},
"alt_contact": {
"name": "Bill Ding",
"phone": "4129 2142 1922"
},
"caller": {
"name": "Corey Ander",
"phone": "0981 209 323",
"email": "coreyander@example.com"
}
},
"work": {
"type": "replacing damaged handholes",
"address": "Street Rd, Town, County, GA",
"nearby_street": "Kings Way",
"subdivision": "Central Park",
"done_for": "CITY OF NEW YORK",
"duration": "3 Days",
"driving_directions": null,
"locate_instructions": "locate the left quadrant.",
"explosives": false,
"white_painted": false,
"deeper_than_16_inches": null,
"overhead": false,
"tunneling_or_boring": true,
"area": {
"type": "Polygon",
"coordinates": [
[
[
-85.23813450364261,
35.10312553767414
],
[
-85.23647418873756,
35.09899153385927
],
[
-85.23295488325576,
35.10088867290039
],
[
-85.23813450364261,
35.10312553767414
]
]
]
}
},
"assignee": {
"id": 42,
"name": "Al Dente"
},
"custom_fields": [
{
"id": 132,
"type_id": 7,
"name": "Site visit",
"value": true
},
{
"id": 95,
"type_id": 6,
"name": "Some date",
"value": null
}
],
"ticket_responses": [
{
"id": 34,
"service_area": "EXMPL01",
"facility": null,
"code": "1A",
"comment": "",
"status": "pending",
"created_at": "2016-10-11T18:42:16.202Z",
"updated_at": "2016-10-11T18:42:16.202Z",
"responded_at": null,
"respondent": {
"id": 12492,
"name": "Jack Pot"
}
}
],
"tags": [
{
"id": 2383,
"name": "Damaged Sewer"
}
],
"attachments": [
{
"id": 2183,
"key": "Ticket/8915/230480ad8ads-4452-bf82-309823abfe323/34923_923082.jpg",
"name": "34923_923082.jpg",
"description": "South side of sewer",
"size": 1075725,
"lat": 40.781438,
"lng": -73.96215,
"updated_at": "2016-07-11T22:22:47.758Z",
"created_at": "2016-07-11T22:22:47.758Z",
"public_url": "https://bucket.s3.amazonaws.com/Ticket/8915/230480ad8ads-4452-bf82-309823abfe323/34923_923082.jpg",
"public_thumbnail_url": "https://bucket-resized.s3.amazonaws.com/Ticket/8915/230480ad8ads-4452-bf82-309823abfe323/34923_923082.jpg",
"created_by": {
"id": 2393,
"name": "Jo King"
}
}
],
"notes": [
{
"id": 30233,
"text": "What a cool note this is! Or is it...?",
"created_at": "2016-12-29T13:55:17.485Z",
"updated_at": "2016-12-29T13:55:17.485Z",
"user": {
"id": 42,
"name": "Al Dente"
}
}
],
"time_entries": [
{
"id": 3942,
"billable": true,
"date": "2017-12-15",
"duration": 120,
"note": "Some text describing this entry",
"created_at": "2017-12-29T13:55:17.485Z",
"updated_at": "2017-12-29T14:21:16.139Z",
"task": {
"id": 83233,
"name": "Marking"
},
"user": {
"id": 94135,
"name": "Lou Pole"
}
}
],
"call_center": {
"id": 8493,
"name": "Georgia 811"
},
"lat": 48.992424,
"lng": -82.49301288
}
Closing a Ticket
Thing | Value |
---|---|
URL | /tickets/by_center/:call_center_id/by_number/:ticket_number/close |
URL by Call Center, Ticket number and SA | /tickets/by_center/:call_center_id/by_number/:ticket_number/by_sa/:service_area/close |
Method | PATCH |
Response | Ticket or error list |
Example parameters (you can also omit these and call close
without params):
{
"ticket": {
"custom_fields": {
"1": "1",
"5": "7"
}
}
}
Example successful response:
{
"id": 8915,
"ticket_number": "06191-285-085",
"reference_ticket_number": null,
"version_number": 0,
"sequence_number": 84,
"ticket_type": "Normal",
"ticket_action": "NEW",
"ticket_source": null,
"service_area": "EXMPL01",
"additional_service_areas": ["EXMPL02", "FOR02", "ATL03"],
"status": "closed",
"created_at": "2016-06-29T15:29:36.947Z",
"updated_at": "2016-10-11T18:42:16.202Z",
"closed_at": "2016-10-11T18:42:17.498Z",
"taken_at": "2016-06-29T15:26:47.000Z",
"work_start_at": "2016-07-03T09:00:00.000Z",
"response_due_at": "2016-07-02T06:59:59.000Z",
"remarks": "Re-mark this remark pls",
"response_status": "not_available",
"excavator": {
"type": "Contractor",
"name": "SHOVEL INC",
"address": "12 OAK RD, NORCROSS, GA 31235",
"phone": "9382 23092 33",
"contact": {
"name": "JACK POT",
"phone": "7911927565 | Alternate: 89419284",
"email": "JACKPOT@EXAMPLE.COM"
},
"alt_contact": {
"name": "Bill Ding",
"phone": "4129 2142 1922"
},
"caller": {
"name": "Corey Ander",
"phone": "0981 209 323",
"email": "coreyander@example.com"
}
},
"work": {
"type": "replacing damaged handholes",
"address": "Street Rd, Town, County, GA",
"nearby_street": "Kings Way",
"subdivision": "Central Park",
"done_for": "CITY OF NEW YORK",
"duration": "3 Days",
"driving_directions": null,
"locate_instructions": "locate the left quadrant.",
"explosives": false,
"white_painted": false,
"deeper_than_16_inches": null,
"overhead": false,
"tunneling_or_boring": true,
"area": {
"type": "Polygon",
"coordinates": [
[
[
-85.23813450364261,
35.10312553767414
],
[
-85.23647418873756,
35.09899153385927
],
[
-85.23295488325576,
35.10088867290039
],
[
-85.23813450364261,
35.10312553767414
]
]
]
}
},
"assignee": {
"id": 1,
"name": "Al Dente"
},
"custom_fields": [
{
"id": 1,
"type_id": 7,
"name": "Site visit",
"value": true
},
{
"id": 5,
"type_id": 6,
"name": "Some date",
"value": null
}
],
"ticket_responses": [
{
"id": 391,
"service_area": "FOR01",
"facility": "Water",
"code": "1A",
"comment": "Resolved",
"status": "pending",
"created_at": "2016-10-11T18:42:16.202Z",
"updated_at": "2016-10-11T18:42:16.202Z",
"responded_at": null,
"respondent": {
"id": 12492,
"name": "Jack Pot"
}
}
],
"tags": [
{
"id": 4,
"name": "Damaged Sewer"
},
{
"id": 1,
"name": "Water"
}
],
"attachments": [],
"notes": [],
"time_entries": [],
"call_center": {
"id": 8493,
"name": "Georgia 811"
},
"lat": 48.992424,
"lng": -82.49301288
}
Example unsuccessful response with validation errors:
{
"errors": {
"assignee_id": ["is invalid"]
}
}
Reopen a Ticket
Thing | Value |
---|---|
URL | /tickets/by_center/:call_center_id/by_number/:ticket_number/reopen |
URL by Call Center, Ticket number and SA | /tickets/by_center/:call_center_id/by_number/:ticket_number/by_sa/:service_area/reopen |
Method | PATCH |
Response | Ticket or error list |
Example successful response:
{
"id": 8915,
"ticket_number": "06191-285-085",
"reference_ticket_number": null,
"version_number": 0,
"sequence_number": 84,
"ticket_type": "Normal",
"ticket_action": "NEW",
"ticket_source": null,
"service_area": "EXMPL01",
"additional_service_areas": ["EXMPL02", "FOR02", "ATL03"],
"status": "assigned",
"created_at": "2016-06-29T15:29:36.947Z",
"updated_at": "2016-10-11T18:42:16.202Z",
"closed_at": null,
"taken_at": "2016-06-29T15:26:47.000Z",
"work_start_at": "2016-07-03T09:00:00.000Z",
"response_due_at": "2016-07-02T06:59:59.000Z",
"remarks": "Re-mark this remark pls",
"response_status": "not_available",
"excavator": {
"type": "Contractor",
"name": "SHOVEL INC",
"address": "12 OAK RD, NORCROSS, GA 31235",
"phone": "9382 23092 33",
"contact": {
"name": "JACK POT",
"phone": "7911927565 | Alternate: 89419284",
"email": "JACKPOT@EXAMPLE.COM"
},
"alt_contact": {
"name": "Bill Ding",
"phone": "4129 2142 1922"
},
"caller": {
"name": "Corey Ander",
"phone": "0981 209 323",
"email": "coreyander@example.com"
}
},
"work": {
"type": "replacing damaged handholes",
"address": "Street Rd, Town, County, GA",
"nearby_street": "Kings Way",
"subdivision": "Central Park",
"done_for": "CITY OF NEW YORK",
"duration": "3 Days",
"driving_directions": null,
"locate_instructions": "locate the left quadrant.",
"explosives": false,
"white_painted": false,
"deeper_than_16_inches": null,
"overhead": false,
"tunneling_or_boring": true,
"area": {
"type": "Polygon",
"coordinates": [
[
[
-85.23813450364261,
35.10312553767414
],
[
-85.23647418873756,
35.09899153385927
],
[
-85.23295488325576,
35.10088867290039
],
[
-85.23813450364261,
35.10312553767414
]
]
]
}
},
"assignee": {
"id": 1,
"name": "Al Dente"
},
"custom_fields": [
{
"id": 1,
"type_id": 7,
"name": "Site visit",
"value": true
},
{
"id": 5,
"type_id": 6,
"name": "Some date",
"value": null
}
],
"ticket_responses": [
{
"id": 34,
"service_area": "EXMPL01",
"facility": "Water",
"code": "1A",
"comment": "",
"status": "pending",
"created_at": "2016-10-11T18:42:16.202Z",
"updated_at": "2016-10-11T18:42:16.202Z",
"responded_at": null,
"respondent": {
"id": 12492,
"name": "Jack Pot"
}
}
],
"tags": [
{
"id": 4,
"name": "Damaged Sewer"
},
{
"id": 1,
"name": "Water"
}
],
"attachments": [],
"notes": [],
"time_entries": [],
"call_center": {
"id": 8493,
"name": "Georgia 811"
},
"lat": 48.992424,
"lng": -82.49301288
}
Ticket Notifications
High Profile notification
Thing | Value |
---|---|
URL | /tickets/by_center/:call_center_id/by_number/:ticket_number/high_profile |
URL by Call Center, Ticket number and SA | /tickets/by_center/:call_center_id/by_number/:ticket_number/by_sa/:service_area/high_profile |
Method | PATCH |
Response | 201:Created or 422:Unprocessable entity |
Example request body:
<?xml version="1.0" encoding="UTF-8" ?>
<soapenv:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<TicketResponse>
<CallCenter>IN811</CallCenter>
<TicketNum>1911065838</TicketNum>
<CDC>ID123</CDC>
<Response>Marked</Response>
<Complete>Done</Complete>
<HighProfile>1</HighProfile>
<Tech>Al Dente</Tech>
<Phone>9238523953</Phone>
<Notes></Notes>
<WorkTime>2019-10-07 02:32:03.000</WorkTime>
</TicketResponse>
</soapenv:Body>
</soapenv:Envelope>
Unlocatable notification
Thing | Value |
---|---|
URL | /tickets/by_center/:call_center_id/by_number/:ticket_number/unlocatable |
URL by Call Center, Ticket number and SA | /tickets/by_center/:call_center_id/by_number/:ticket_number/by_sa/:service_area/unlocatable |
Method | PATCH |
Response | 201:Created or 422:Unprocessable entity |
Example request body:
<soapenv:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<TicketResponse>
<CallCenter>OUPS</CallCenter>
<TicketNum>A123456789</TicketNum>
<CDC>ASD</CDC>
<Response>Unlocatable Verified</Response>
<Complete>1</Complete>
<HighProfile>0</HighProfile>
<Tech>Jack Pot</Tech>
<Phone>555555555</Phone>
<Notes></Notes>
<WorkTime>2019-10-16 16:12:07.383</WorkTime>
</TicketResponse>
</soapenv:Body>
</soapenv:Envelope>
Rescheduled notification
Thing | Value |
---|---|
URL | /tickets/by_center/:call_center_id/by_number/:ticket_number/rescheduled |
URL by Call Center, Ticket number and SA | /tickets/by_center/:call_center_id/by_number/:ticket_number/by_sa/:service_area/rescheduled |
Method | PATCH |
Response | 201:Created or 422:Unprocessable entity |
Example request body:
<?xml version="1.0" encoding="UTF-8" ?>
<soapenv:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<Rescheduling>
<NewDueDate>2019-11-15 11:00:00.000</NewDueDate>
<Tech>John Toe</Tech>
<TechPhone>4045551234</TechPhone>
<RescheduledAt>2019-12-08 12:35:01.000</RescheduledAt>
<Notes>Talked to Roger and he recommended rescheduling</Notes>
</Rescheduling>
</soapenv:Body>
</soapenv:Envelope>
Ticket Responses
Creating a Ticket Response
Thing | Value |
---|---|
URL | /tickets/by_center/:call_center_id/by_number/:ticket_number/ticket_responses |
URL by Call Center, Ticket number and SA | /tickets/by_center/:call_center_id/by_number/:ticket_number/by_sa/:service_area/ticket_responses |
Method | POST |
Response | 201:Created or 422:Unprocessable entity |
Example parameters:
{
"ticket_response": {
"service_area": "FOR01", // REQUIRED (also known as Member Code)
"code": "1A", // REQUIRED (also known as status)
"facility": "Water", // REQUIRED ONLY WHEN the call center requires it, otherwise keep it blank
"comment": "Resolved", // REQUIRED ONLY WHEN used for Indiana call center 3C, 3F positive response codes
"attempted_contact_name": "Jack Pot", // REQUIRED ONLY WHEN used for Indiana call center 3C, 3F, 3G positive response codes
"additional_properties": {
"description_of_marked_area": "Area description" // REQUIRED ONLY WHEN used for Indiana call center 3G positive response code
}
}
}
Example response:
{
"id": 39131,
"service_area": "FOR01",
"facility": "Water",
"code": "1A",
"comment": "Resolved",
"status": "pending",
"created_at": "2016-10-11T18:42:16.202Z",
"updated_at": "2016-10-11T18:42:16.202Z",
"responded_at": null,
"respondent": {
"id": 12492,
"name": "Jack Pot"
}
}
After successful creation of a Ticket Response, the response will also be sent to the Call Center when it's enabled in the settings.
Notes
Creating a Note for a Ticket
Thing | Value |
---|---|
URL | /tickets/by_center/:call_center_id/by_number/:ticket_number/notes |
URL by Call Center, Ticket number and SA | /tickets/by_center/:call_center_id/by_number/:ticket_number/by_sa/:service_area/notes |
Method | POST |
Response | Note or error list |
Example parameters:
{
"note": {
"text": "A new Note!" // REQUIRED
}
}
Example successful response:
{
"id": 712,
"text": "A new Note!",
"created_at": "2017-07-21T10:21:57.275Z",
"updated_at": "2017-07-21T10:21:57.275Z",
"user": null
}
Example unsuccessful response with validation errors:
{
"errors": {
"text": ["can't be blank"]
}
}