C# UWP/WinRT Zendesk: Create Many Tickets

Back to Index

Creates multiple Zendesk tickets in one call.

Documentation: https://developer.zendesk.com/rest_api/docs/core/tickets#create-many-tickets

CURL Command

curl -X POST https://subdomain.zendesk.com/api/v2/tickets/create_many.json \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
  "tickets": [
    {
      "subject":  "My USB port is smokin!",
      "comment":  { "body": "The smoke is very colorful." },
      "priority": "urgent"
    },
    {
      "subject":  "Help",
      "comment":  { "body": "This is a comment" },
      "priority": "normal"
    }
  ]
}' \
  -u zendesk_email:zendesk_password

C# UWP/WinRT Example

Chilkat.Rest rest = new Chilkat.Rest();
bool success;

//  URL: https://subdomain.zendesk.com/api/v2/tickets/create_many.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("tickets[0].subject","My USB port is smokin!");
json.UpdateString("tickets[0].comment.body","The smoke is very colorful.");
json.UpdateString("tickets[0].priority","urgent");
json.UpdateString("tickets[1].subject","Help");
json.UpdateString("tickets[1].comment.body","This is a comment");
json.UpdateString("tickets[1].priority","normal");

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/create_many.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 job_statusId;
string job_statusUrl;
string job_statusTotal;
string job_statusProgress;
string job_statusStatus;
string job_statusMessage;
string job_statusResults;

job_statusId = jsonResponse.StringOf("job_status.id");
job_statusUrl = jsonResponse.StringOf("job_status.url");
job_statusTotal = jsonResponse.StringOf("job_status.total");
job_statusProgress = jsonResponse.StringOf("job_status.progress");
job_statusStatus = jsonResponse.StringOf("job_status.status");
job_statusMessage = jsonResponse.StringOf("job_status.message");
job_statusResults = jsonResponse.StringOf("job_status.results");

Sample JSON Response Body

{
  "job_status": {
    "id": "5d5531f033737e327ce44bf2e8cc6a1a",
    "url": "https://chilkat.zendesk.com/api/v2/job_statuses/5d5531f033737e327ce44bf2e8cc6a1a.json",
    "total": null,
    "progress": null,
    "status": "queued",
    "message": null,
    "results": null
  }
}