Creates a new Zendesk ticket.
curl -X POST https://subdomain.zendesk.com/api/v2/tickets.json \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"ticket": {
"subject": "My printer is on fire!",
"comment": {
"body": "The smoke is very colorful."
}
}
}' \
-u zendesk_email:zendesk_password
Chilkat.Rest rest = new Chilkat.Rest();
bool success;
// URL: https://subdomain.zendesk.com/api/v2/tickets.json
bool bTls = true;
int port = 443;
bool bAutoReconnect = true;
success = await rest.ConnectAsync("subdomain.zendesk.com",port,bTls,bAutoReconnect);
if (success != true) {
Debug.WriteLine("ConnectFailReason: " + Convert.ToString(rest.ConnectFailReason));
Debug.WriteLine(rest.LastErrorText);
return;
}
rest.SetAuthBasic("zendesk_email","zendesk_password");
Chilkat.JsonObject json = new Chilkat.JsonObject();
json.UpdateString("ticket.subject","My printer is on fire!");
json.UpdateString("ticket.comment.body","The smoke is very colorful.");
rest.AddHeader("Content-Type","application/json");
rest.AddHeader("Accept","application/json");
Chilkat.StringBuilder sbRequestBody = new Chilkat.StringBuilder();
json.EmitSb(sbRequestBody);
Chilkat.StringBuilder sbResponseBody = new Chilkat.StringBuilder();
success = await rest.FullRequestSbAsync("POST","/api/v2/tickets.json",sbRequestBody,sbResponseBody);
if (success != true) {
Debug.WriteLine(rest.LastErrorText);
return;
}
int respStatusCode = rest.ResponseStatusCode;
if (respStatusCode >= 400) {
Debug.WriteLine("Response Status Code = " + Convert.ToString(respStatusCode));
Debug.WriteLine("Response Header:");
Debug.WriteLine(rest.ResponseHeader);
Debug.WriteLine("Response Body:");
Debug.WriteLine(sbResponseBody.GetAsString());
return;
}
Chilkat.JsonObject jsonResponse = new Chilkat.JsonObject();
jsonResponse.LoadSb(sbResponseBody);
string ticketUrl;
int ticketId;
string ticketExternal_id;
string ticketViaChannel;
string ticketViaSourceRel;
string ticketCreated_at;
string ticketUpdated_at;
string ticketType;
string ticketSubject;
string ticketRaw_subject;
string ticketDescription;
string ticketPriority;
string ticketStatus;
string ticketRecipient;
int ticketRequester_id;
int ticketSubmitter_id;
int ticketAssignee_id;
int ticketOrganization_id;
int ticketGroup_id;
string ticketForum_topic_id;
string ticketProblem_id;
bool ticketHas_incidents;
bool ticketIs_public;
string ticketDue_at;
string ticketSatisfaction_rating;
int ticketBrand_id;
bool ticketAllow_channelback;
int auditId;
int auditTicket_id;
string auditCreated_at;
int auditAuthor_id;
string auditMetadataSystemIp_address;
string auditMetadataSystemLocation;
int auditMetadataSystemLatitude;
int auditMetadataSystemLongitude;
string auditViaChannel;
string auditViaSourceRel;
int i;
int count_i;
int id;
string type;
int author_id;
string body;
string html_body;
string plain_body;
bool public;
int audit_id;
string value;
string field_name;
string viaChannel;
bool viaSourceFromDeleted;
string viaSourceFromTitle;
int viaSourceFromId;
string viaSourceRel;
string subject;
int j;
int count_j;
int intVal;
ticketUrl = jsonResponse.StringOf("ticket.url");
ticketId = jsonResponse.IntOf("ticket.id");
ticketExternal_id = jsonResponse.StringOf("ticket.external_id");
ticketViaChannel = jsonResponse.StringOf("ticket.via.channel");
ticketViaSourceRel = jsonResponse.StringOf("ticket.via.source.rel");
ticketCreated_at = jsonResponse.StringOf("ticket.created_at");
ticketUpdated_at = jsonResponse.StringOf("ticket.updated_at");
ticketType = jsonResponse.StringOf("ticket.type");
ticketSubject = jsonResponse.StringOf("ticket.subject");
ticketRaw_subject = jsonResponse.StringOf("ticket.raw_subject");
ticketDescription = jsonResponse.StringOf("ticket.description");
ticketPriority = jsonResponse.StringOf("ticket.priority");
ticketStatus = jsonResponse.StringOf("ticket.status");
ticketRecipient = jsonResponse.StringOf("ticket.recipient");
ticketRequester_id = jsonResponse.IntOf("ticket.requester_id");
ticketSubmitter_id = jsonResponse.IntOf("ticket.submitter_id");
ticketAssignee_id = jsonResponse.IntOf("ticket.assignee_id");
ticketOrganization_id = jsonResponse.IntOf("ticket.organization_id");
ticketGroup_id = jsonResponse.IntOf("ticket.group_id");
ticketForum_topic_id = jsonResponse.StringOf("ticket.forum_topic_id");
ticketProblem_id = jsonResponse.StringOf("ticket.problem_id");
ticketHas_incidents = jsonResponse.BoolOf("ticket.has_incidents");
ticketIs_public = jsonResponse.BoolOf("ticket.is_public");
ticketDue_at = jsonResponse.StringOf("ticket.due_at");
ticketSatisfaction_rating = jsonResponse.StringOf("ticket.satisfaction_rating");
ticketBrand_id = jsonResponse.IntOf("ticket.brand_id");
ticketAllow_channelback = jsonResponse.BoolOf("ticket.allow_channelback");
auditId = jsonResponse.IntOf("audit.id");
auditTicket_id = jsonResponse.IntOf("audit.ticket_id");
auditCreated_at = jsonResponse.StringOf("audit.created_at");
auditAuthor_id = jsonResponse.IntOf("audit.author_id");
auditMetadataSystemIp_address = jsonResponse.StringOf("audit.metadata.system.ip_address");
auditMetadataSystemLocation = jsonResponse.StringOf("audit.metadata.system.location");
auditMetadataSystemLatitude = jsonResponse.IntOf("audit.metadata.system.latitude");
auditMetadataSystemLongitude = jsonResponse.IntOf("audit.metadata.system.longitude");
auditViaChannel = jsonResponse.StringOf("audit.via.channel");
auditViaSourceRel = jsonResponse.StringOf("audit.via.source.rel");
i = 0;
count_i = jsonResponse.SizeOfArray("ticket.collaborator_ids");
while (i < count_i) {
jsonResponse.I = i;
i = i + 1;
}
i = 0;
count_i = jsonResponse.SizeOfArray("ticket.follower_ids");
while (i < count_i) {
jsonResponse.I = i;
i = i + 1;
}
i = 0;
count_i = jsonResponse.SizeOfArray("ticket.email_cc_ids");
while (i < count_i) {
jsonResponse.I = i;
i = i + 1;
}
i = 0;
count_i = jsonResponse.SizeOfArray("ticket.tags");
while (i < count_i) {
jsonResponse.I = i;
i = i + 1;
}
i = 0;
count_i = jsonResponse.SizeOfArray("ticket.custom_fields");
while (i < count_i) {
jsonResponse.I = i;
i = i + 1;
}
i = 0;
count_i = jsonResponse.SizeOfArray("ticket.sharing_agreement_ids");
while (i < count_i) {
jsonResponse.I = i;
i = i + 1;
}
i = 0;
count_i = jsonResponse.SizeOfArray("ticket.fields");
while (i < count_i) {
jsonResponse.I = i;
i = i + 1;
}
i = 0;
count_i = jsonResponse.SizeOfArray("ticket.followup_ids");
while (i < count_i) {
jsonResponse.I = i;
i = i + 1;
}
i = 0;
count_i = jsonResponse.SizeOfArray("audit.events");
while (i < count_i) {
jsonResponse.I = i;
id = jsonResponse.IntOf("audit.events[i].id");
type = jsonResponse.StringOf("audit.events[i].type");
author_id = jsonResponse.IntOf("audit.events[i].author_id");
body = jsonResponse.StringOf("audit.events[i].body");
html_body = jsonResponse.StringOf("audit.events[i].html_body");
plain_body = jsonResponse.StringOf("audit.events[i].plain_body");
public = jsonResponse.BoolOf("audit.events[i].public");
audit_id = jsonResponse.IntOf("audit.events[i].audit_id");
value = jsonResponse.StringOf("audit.events[i].value");
field_name = jsonResponse.StringOf("audit.events[i].field_name");
viaChannel = jsonResponse.StringOf("audit.events[i].via.channel");
viaSourceFromDeleted = jsonResponse.BoolOf("audit.events[i].via.source.from.deleted");
viaSourceFromTitle = jsonResponse.StringOf("audit.events[i].via.source.from.title");
viaSourceFromId = jsonResponse.IntOf("audit.events[i].via.source.from.id");
viaSourceRel = jsonResponse.StringOf("audit.events[i].via.source.rel");
subject = jsonResponse.StringOf("audit.events[i].subject");
j = 0;
count_j = jsonResponse.SizeOfArray("audit.events[i].attachments");
while (j < count_j) {
jsonResponse.J = j;
j = j + 1;
}
j = 0;
count_j = jsonResponse.SizeOfArray("audit.events[i].recipients");
while (j < count_j) {
jsonResponse.J = j;
intVal = jsonResponse.IntOf("audit.events[i].recipients[j]");
j = j + 1;
}
i = i + 1;
}
{
"ticket": {
"url": "https://chilkat.zendesk.com/api/v2/tickets/7.json",
"id": 7,
"external_id": null,
"via": {
"channel": "api",
"source": {
"from": {},
"to": {},
"rel": null
}
},
"created_at": "2018-04-15T18:13:15Z",
"updated_at": "2018-04-15T18:13:15Z",
"type": null,
"subject": "My printer is on fire!",
"raw_subject": "My printer is on fire!",
"description": "The smoke is very colorful.",
"priority": null,
"status": "open",
"recipient": null,
"requester_id": 361801727573,
"submitter_id": 361801727573,
"assignee_id": 361801727573,
"organization_id": 360015071793,
"group_id": 360000681553,
"collaborator_ids": [
],
"follower_ids": [
],
"email_cc_ids": [
],
"forum_topic_id": null,
"problem_id": null,
"has_incidents": false,
"is_public": true,
"due_at": null,
"tags": [
],
"custom_fields": [
],
"satisfaction_rating": null,
"sharing_agreement_ids": [
],
"fields": [
],
"followup_ids": [
],
"brand_id": 360000471533,
"allow_channelback": false
},
"audit": {
"id": 391248331553,
"ticket_id": 7,
"created_at": "2018-04-15T18:13:15Z",
"author_id": 361801727573,
"metadata": {
"system": {
"ip_address": "52.25.83.238",
"location": "Boardman, OR, United States",
"latitude": 45.86959999999999,
"longitude": -119.688
},
"custom": {}
},
"events": [
{
"id": 391248331653,
"type": "Comment",
"author_id": 361801727573,
"body": "The smoke is very colorful.",
"html_body": "<div class=\"zd-comment\"><p dir=\"auto\">The smoke is very colorful.</p></div>",
"plain_body": "The smoke is very colorful.",
"public": true,
"attachments": [
],
"audit_id": 391248331553
},
{
"id": 391248331833,
"type": "Create",
"value": "My printer is on fire!",
"field_name": "subject"
},
{
"id": 391248331973,
"type": "Create",
"value": "361801727573",
"field_name": "requester_id"
},
{
"id": 391248332053,
"type": "Create",
"value": "open",
"field_name": "status"
},
{
"id": 391248332193,
"type": "Create",
"value": null,
"field_name": "priority"
},
{
"id": 391248332313,
"type": "Create",
"value": null,
"field_name": "type"
},
{
"id": 391248332353,
"type": "Create",
"value": "361801727573",
"field_name": "assignee_id"
},
{
"id": 391248332373,
"type": "Create",
"value": "360000681553",
"field_name": "group_id"
},
{
"id": 391248332393,
"type": "Create",
"value": "360015071793",
"field_name": "organization_id"
},
{
"id": 391248332413,
"type": "Notification",
"via": {
"channel": "rule",
"source": {
"from": {
"deleted": false,
"title": "Notify requester of received request",
"id": 360018516913
},
"rel": "trigger"
}
},
"subject": "[Request received] {{ticket.title}}",
"body": "Your request ({{ticket.id}}) has been received and is being reviewed by our support staff.\n\nTo add additional comments, reply to this email.\n\n{{ticket.comments_formatted}}",
"recipients": [
361801727573
]
},
{
"id": 391248332433,
"type": "Notification",
"via": {
"channel": "rule",
"source": {
"from": {
"deleted": false,
"title": "Notify all agents of received request",
"id": 360018517033
},
"rel": "trigger"
}
},
"subject": "[{{ticket.account}}] {{ticket.title}}",
"body": "A ticket (#{{ticket.id}}) by {{ticket.requester.name}} has been received. It is unassigned.\n\n{{ticket.comments_formatted}}",
"recipients": [
361801727573
]
}
],
"via": {
"channel": "api",
"source": {
"from": {},
"to": {},
"rel": null
}
}
}
}