Creates multiple Zendesk tickets in one call.
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
var
rest: TChilkatRest;
success: Integer;
bTls: Integer;
port: Integer;
bAutoReconnect: Integer;
json: TChilkatJsonObject;
sbRequestBody: TChilkatStringBuilder;
sbResponseBody: TChilkatStringBuilder;
respStatusCode: Integer;
jsonResponse: TChilkatJsonObject;
job_statusId: WideString;
job_statusUrl: WideString;
job_statusTotal: WideString;
job_statusProgress: WideString;
job_statusStatus: WideString;
job_statusMessage: WideString;
job_statusResults: WideString;
begin
rest := TChilkatRest.Create(Self);
// URL: https://subdomain.zendesk.com/api/v2/tickets/create_many.json
bTls := 1;
port := 443;
bAutoReconnect := 1;
success := rest.Connect('subdomain.zendesk.com',port,bTls,bAutoReconnect);
if (success <> 1) then
begin
Memo1.Lines.Add('ConnectFailReason: ' + IntToStr(rest.ConnectFailReason));
Memo1.Lines.Add(rest.LastErrorText);
Exit;
end;
rest.SetAuthBasic('zendesk_email','zendesk_password');
json := TChilkatJsonObject.Create(Self);
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');
sbRequestBody := TChilkatStringBuilder.Create(Self);
json.EmitSb(sbRequestBody.ControlInterface);
sbResponseBody := TChilkatStringBuilder.Create(Self);
success := rest.FullRequestSb('POST','/api/v2/tickets/create_many.json',sbRequestBody.ControlInterface,sbResponseBody.ControlInterface);
if (success <> 1) then
begin
Memo1.Lines.Add(rest.LastErrorText);
Exit;
end;
respStatusCode := rest.ResponseStatusCode;
if (respStatusCode >= 400) then
begin
Memo1.Lines.Add('Response Status Code = ' + IntToStr(respStatusCode));
Memo1.Lines.Add('Response Header:');
Memo1.Lines.Add(rest.ResponseHeader);
Memo1.Lines.Add('Response Body:');
Memo1.Lines.Add(sbResponseBody.GetAsString());
Exit;
end;
jsonResponse := TChilkatJsonObject.Create(Self);
jsonResponse.LoadSb(sbResponseBody.ControlInterface);
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');
{
"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
}
}