Delphi ActiveX Zendesk: Update user

Back to Index

Update a user by user ID. This example updates the user with id = 361811376954

Documentation: https://developer.zendesk.com/rest_api/docs/core/users#update-user

CURL Command

curl https://subdomain.zendesk.com/api/v2/users/361811376954.json \
  -d '{"user": {"name": "Roger Wilco II"}}' \
  -H "Content-Type: application/json" -X PUT \
  -u zendesk_email/token:zendesk_api_token

Delphi ActiveX Example

var
rest: TChilkatRest;
success: Integer;
bTls: Integer;
port: Integer;
bAutoReconnect: Integer;
json: TChilkatJsonObject;
sbRequestBody: TChilkatStringBuilder;
sbResponseBody: TChilkatStringBuilder;
respStatusCode: Integer;
jsonResponse: TChilkatJsonObject;
userId: Integer;
userUrl: WideString;
userName: WideString;
userEmail: WideString;
userCreated_at: WideString;
userUpdated_at: WideString;
userTime_zone: WideString;
userPhone: WideString;
userShared_phone_number: WideString;
userPhoto: WideString;
userLocale_id: Integer;
userLocale: WideString;
userOrganization_id: WideString;
userRole: WideString;
userVerified: Integer;
userExternal_id: WideString;
userAlias: WideString;
userActive: Integer;
userShared: Integer;
userShared_agent: Integer;
userLast_login_at: WideString;
userTwo_factor_auth_enabled: Integer;
userSignature: WideString;
userDetails: WideString;
userNotes: WideString;
userRole_type: WideString;
userCustom_role_id: WideString;
userModerator: Integer;
userTicket_restriction: WideString;
userOnly_private_comments: Integer;
userRestricted_agent: Integer;
userSuspended: Integer;
userChat_only: Integer;
userDefault_group_id: WideString;
i: Integer;
count_i: Integer;

begin
rest := TChilkatRest.Create(Self);

//  URL: https://subdomain.zendesk.com/api/v2/users/361811376954.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/token','zendesk_api_token');

json := TChilkatJsonObject.Create(Self);
json.UpdateString('user.name','Roger Wilco II');

rest.AddHeader('Content-Type','application/json');

sbRequestBody := TChilkatStringBuilder.Create(Self);
json.EmitSb(sbRequestBody.ControlInterface);
sbResponseBody := TChilkatStringBuilder.Create(Self);
success := rest.FullRequestSb('PUT','/api/v2/users/361811376954.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);

userId := jsonResponse.IntOf('user.id');
userUrl := jsonResponse.StringOf('user.url');
userName := jsonResponse.StringOf('user.name');
userEmail := jsonResponse.StringOf('user.email');
userCreated_at := jsonResponse.StringOf('user.created_at');
userUpdated_at := jsonResponse.StringOf('user.updated_at');
userTime_zone := jsonResponse.StringOf('user.time_zone');
userPhone := jsonResponse.StringOf('user.phone');
userShared_phone_number := jsonResponse.StringOf('user.shared_phone_number');
userPhoto := jsonResponse.StringOf('user.photo');
userLocale_id := jsonResponse.IntOf('user.locale_id');
userLocale := jsonResponse.StringOf('user.locale');
userOrganization_id := jsonResponse.StringOf('user.organization_id');
userRole := jsonResponse.StringOf('user.role');
userVerified := jsonResponse.BoolOf('user.verified');
userExternal_id := jsonResponse.StringOf('user.external_id');
userAlias := jsonResponse.StringOf('user.alias');
userActive := jsonResponse.BoolOf('user.active');
userShared := jsonResponse.BoolOf('user.shared');
userShared_agent := jsonResponse.BoolOf('user.shared_agent');
userLast_login_at := jsonResponse.StringOf('user.last_login_at');
userTwo_factor_auth_enabled := jsonResponse.BoolOf('user.two_factor_auth_enabled');
userSignature := jsonResponse.StringOf('user.signature');
userDetails := jsonResponse.StringOf('user.details');
userNotes := jsonResponse.StringOf('user.notes');
userRole_type := jsonResponse.StringOf('user.role_type');
userCustom_role_id := jsonResponse.StringOf('user.custom_role_id');
userModerator := jsonResponse.BoolOf('user.moderator');
userTicket_restriction := jsonResponse.StringOf('user.ticket_restriction');
userOnly_private_comments := jsonResponse.BoolOf('user.only_private_comments');
userRestricted_agent := jsonResponse.BoolOf('user.restricted_agent');
userSuspended := jsonResponse.BoolOf('user.suspended');
userChat_only := jsonResponse.BoolOf('user.chat_only');
userDefault_group_id := jsonResponse.StringOf('user.default_group_id');
i := 0;
count_i := jsonResponse.SizeOfArray('user.tags');
while i < count_i do
  begin
    jsonResponse.I := i;
    i := i + 1;
  end;

Sample JSON Response Body

{
  "user": {
    "id": 361811376954,
    "url": "https://chilkat.zendesk.com/api/v2/users/361811376954.json",
    "name": "Roger Wilco II",
    "email": "roger@chilkat.io",
    "created_at": "2018-04-14T23:09:24Z",
    "updated_at": "2018-04-15T02:58:06Z",
    "time_zone": "Bogota",
    "phone": null,
    "shared_phone_number": null,
    "photo": null,
    "locale_id": 1,
    "locale": "en-US",
    "organization_id": null,
    "role": "end-user",
    "verified": false,
    "external_id": null,
    "tags": [
    ],
    "alias": null,
    "active": true,
    "shared": false,
    "shared_agent": false,
    "last_login_at": null,
    "two_factor_auth_enabled": false,
    "signature": null,
    "details": null,
    "notes": null,
    "role_type": null,
    "custom_role_id": null,
    "moderator": false,
    "ticket_restriction": "requested",
    "only_private_comments": false,
    "restricted_agent": true,
    "suspended": false,
    "chat_only": false,
    "default_group_id": null,
    "user_fields": {}
  }
}