Chilkat Online Tools

VB6 / Support API / Merge End Users

Back to Collection Items

' This example assumes the Chilkat API to have been previously unlocked.
' See Global Unlock Sample for sample code.

Dim http As New ChilkatHttp
Dim success As Long

http.BasicAuth = 1
http.Login = "login"
http.Password = "password"

' Use this online tool to generate code from sample JSON: Generate Code to Create JSON

' The following JSON is sent in the request body.

' {
'   "user": {
'     "name": "<string>",
'     "email": "<string>",
'     "custom_role_id": "<integer>",
'     "external_id": "<string>",
'     "identities": [
'       {
'         "type": "<string>",
'         "value": "<string>"
'       },
'       {
'         "type": "<string>",
'         "value": "<string>"
'       }
'     ],
'     "organization": {
'       "name": "<string>"
'     },
'     "organization_id": "<integer>",
'     "role": "<string>"
'   }
' }

Dim json As New ChilkatJsonObject
success = json.UpdateString("user.name","<string>")
success = json.UpdateString("user.email","<string>")
success = json.UpdateString("user.custom_role_id","<integer>")
success = json.UpdateString("user.external_id","<string>")
success = json.UpdateString("user.identities[0].type","<string>")
success = json.UpdateString("user.identities[0].value","<string>")
success = json.UpdateString("user.identities[1].type","<string>")
success = json.UpdateString("user.identities[1].value","<string>")
success = json.UpdateString("user.organization.name","<string>")
success = json.UpdateString("user.organization_id","<integer>")
success = json.UpdateString("user.role","<string>")

http.SetRequestHeader "Content-Type","application/json"
http.SetRequestHeader "Accept","application/json"

Dim sbRequestBody As New ChilkatStringBuilder
success = json.EmitSb(sbRequestBody)

Dim resp As ChilkatHttpResponse
Set resp = http.PTextSb("PUT","https://example.zendesk.com/api/v2/users/:user_id/merge",sbRequestBody,"utf-8","application/json",0,0)
If (http.LastMethodSuccess = 0) Then
    Debug.Print http.LastErrorText
    Exit Sub
End If

Dim sbResponseBody As New ChilkatStringBuilder
success = resp.GetBodySb(sbResponseBody)

Dim jResp As New ChilkatJsonObject
success = jResp.LoadSb(sbResponseBody)
jResp.EmitCompact = 0

Debug.Print "Response Body:"
Debug.Print jResp.Emit()

Dim respStatusCode As Long
respStatusCode = resp.StatusCode
Debug.Print "Response Status Code = " & respStatusCode
If (respStatusCode >= 400) Then
    Debug.Print "Response Header:"
    Debug.Print resp.Header
    Debug.Print "Failed."

    Exit Sub
End If

' Sample JSON response:
' (Sample code for parsing the JSON response is shown below)

' {
'   "user": {
'     "name": "<string>",
'     "active": "<boolean>",
'     "alias": "<string>",
'     "chat_only": "<boolean>",
'     "created_at": "<string>",
'     "custom_role_id": "<integer>",
'     "default_group_id": "<integer>",
'     "details": "<string>",
'     "email": "<string>",
'     "external_id": "<string>",
'     "iana_time_zone": "<string>",
'     "id": "<integer>",
'     "last_login_at": "<string>",
'     "locale": "<string>",
'     "locale_id": "<integer>",
'     "moderator": "<boolean>",
'     "notes": "<string>",
'     "only_private_comments": "<boolean>",
'     "organization_id": "<integer>",
'     "phone": "<string>",
'     "photo": {
'       "dolorea1": false,
'       "deserunt3": 95124319.10825741
'     },
'     "remote_photo_url": "<string>",
'     "report_csv": "<boolean>",
'     "restricted_agent": "<boolean>",
'     "role": "<string>",
'     "role_type": "<integer>",
'     "shared": "<boolean>",
'     "shared_agent": "<boolean>",
'     "shared_phone_number": "<boolean>",
'     "signature": "<string>",
'     "suspended": "<boolean>",
'     "tags": "<array>",
'     "ticket_restriction": "<string>",
'     "time_zone": "<string>",
'     "two_factor_auth_enabled": "<boolean>",
'     "updated_at": "<string>",
'     "url": "<string>",
'     "user_fields": {
'       "nostrudacc": -12929960.546221554,
'       "in_80e": 25167751.960886702,
'       "proident_e2": true,
'       "voluptate_98": -58995022
'     },
'     "verified": "<boolean>"
'   }
' }

' Sample code for parsing the JSON response...
' Use this online tool to generate parsing code from sample JSON: Generate JSON Parsing Code

Dim Name As String
Name = jResp.StringOf("user.name")
Dim Active As String
Active = jResp.StringOf("user.active")
Dim Alias As String
Alias = jResp.StringOf("user.alias")
Dim Chat_only As String
Chat_only = jResp.StringOf("user.chat_only")
Dim Created_at As String
Created_at = jResp.StringOf("user.created_at")
Dim Custom_role_id As String
Custom_role_id = jResp.StringOf("user.custom_role_id")
Dim Default_group_id As String
Default_group_id = jResp.StringOf("user.default_group_id")
Dim Details As String
Details = jResp.StringOf("user.details")
Dim v_Email As String
v_Email = jResp.StringOf("user.email")
Dim External_id As String
External_id = jResp.StringOf("user.external_id")
Dim Iana_time_zone As String
Iana_time_zone = jResp.StringOf("user.iana_time_zone")
Dim Id As String
Id = jResp.StringOf("user.id")
Dim Last_login_at As String
Last_login_at = jResp.StringOf("user.last_login_at")
Dim Locale As String
Locale = jResp.StringOf("user.locale")
Dim Locale_id As String
Locale_id = jResp.StringOf("user.locale_id")
Dim Moderator As String
Moderator = jResp.StringOf("user.moderator")
Dim Notes As String
Notes = jResp.StringOf("user.notes")
Dim Only_private_comments As String
Only_private_comments = jResp.StringOf("user.only_private_comments")
Dim Organization_id As String
Organization_id = jResp.StringOf("user.organization_id")
Dim Phone As String
Phone = jResp.StringOf("user.phone")
Dim Dolorea1 As Long
Dolorea1 = jResp.BoolOf("user.photo.dolorea1")
Dim Deserunt3 As String
Deserunt3 = jResp.StringOf("user.photo.deserunt3")
Dim Remote_photo_url As String
Remote_photo_url = jResp.StringOf("user.remote_photo_url")
Dim Report_csv As String
Report_csv = jResp.StringOf("user.report_csv")
Dim Restricted_agent As String
Restricted_agent = jResp.StringOf("user.restricted_agent")
Dim Role As String
Role = jResp.StringOf("user.role")
Dim Role_type As String
Role_type = jResp.StringOf("user.role_type")
Dim v_Shared As String
v_Shared = jResp.StringOf("user.shared")
Dim Shared_agent As String
Shared_agent = jResp.StringOf("user.shared_agent")
Dim Shared_phone_number As String
Shared_phone_number = jResp.StringOf("user.shared_phone_number")
Dim Signature As String
Signature = jResp.StringOf("user.signature")
Dim Suspended As String
Suspended = jResp.StringOf("user.suspended")
Dim Tags As String
Tags = jResp.StringOf("user.tags")
Dim Ticket_restriction As String
Ticket_restriction = jResp.StringOf("user.ticket_restriction")
Dim Time_zone As String
Time_zone = jResp.StringOf("user.time_zone")
Dim Two_factor_auth_enabled As String
Two_factor_auth_enabled = jResp.StringOf("user.two_factor_auth_enabled")
Dim Updated_at As String
Updated_at = jResp.StringOf("user.updated_at")
Dim v_Url As String
v_Url = jResp.StringOf("user.url")
Dim Nostrudacc As String
Nostrudacc = jResp.StringOf("user.user_fields.nostrudacc")
Dim In_80e As String
In_80e = jResp.StringOf("user.user_fields.in_80e")
Dim Proident_e2 As Long
Proident_e2 = jResp.BoolOf("user.user_fields.proident_e2")
Dim Voluptate_98 As Long
Voluptate_98 = jResp.IntOf("user.user_fields.voluptate_98")
Dim Verified As String
Verified = jResp.StringOf("user.verified")

Curl Command

curl  -u login:password -X PUT
	-H "Content-Type: application/json"
	-H "Accept: application/json"
	-d '{
  "user": {
    "name": "<string>",
    "email": "<string>",
    "custom_role_id": "<integer>",
    "external_id": "<string>",
    "identities": [
      {
        "type": "<string>",
        "value": "<string>"
      },
      {
        "type": "<string>",
        "value": "<string>"
      }
    ],
    "organization": {
      "name": "<string>"
    },
    "organization_id": "<integer>",
    "role": "<string>"
  }
}'
https://example.zendesk.com/api/v2/users/:user_id/merge

Postman Collection Item JSON

{
  "name": "Merge End Users",
  "request": {
    "method": "PUT",
    "header": [
      {
        "key": "Content-Type",
        "value": "application/json"
      },
      {
        "key": "Accept",
        "value": "application/json"
      }
    ],
    "body": {
      "mode": "raw",
      "raw": "{\n  \"user\": {\n    \"name\": \"<string>\",\n    \"email\": \"<string>\",\n    \"custom_role_id\": \"<integer>\",\n    \"external_id\": \"<string>\",\n    \"identities\": [\n      {\n        \"type\": \"<string>\",\n        \"value\": \"<string>\"\n      },\n      {\n        \"type\": \"<string>\",\n        \"value\": \"<string>\"\n      }\n    ],\n    \"organization\": {\n      \"name\": \"<string>\"\n    },\n    \"organization_id\": \"<integer>\",\n    \"role\": \"<string>\"\n  }\n}",
      "options": {
        "raw": {
          "headerFamily": "json",
          "language": "json"
        }
      }
    },
    "url": {
      "raw": "{{baseUrl}}/api/v2/users/:user_id/merge",
      "host": [
        "{{baseUrl}}"
      ],
      "path": [
        "api",
        "v2",
        "users",
        ":user_id",
        "merge"
      ],
      "variable": [
        {
          "key": "user_id",
          "value": "<integer>"
        }
      ]
    },
    "description": "Merges the end user specified in the path parameter into the existing end user specified in the request body.\n\nAny two end users can be merged with the exception of end users created by sharing agreements.\n\nAgents and admins cannot be merged.\n\nFor more information about how user data is merged, see [Merging a user's\nduplicate\naccount](https://support.zendesk.com/hc/en-us/articles/4408887695898) in\nZendesk help.\n\n#### Allowed For\n\n* Admins or agents with permission to edit end users\n"
  },
  "response": [
    {
      "name": "Success response",
      "originalRequest": {
        "method": "PUT",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          },
          {
            "description": "Added as a part of security scheme: basic",
            "key": "Authorization",
            "value": "Basic <credentials>"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n  \"user\": {\n    \"name\": \"<string>\",\n    \"email\": \"<string>\",\n    \"custom_role_id\": \"<integer>\",\n    \"external_id\": \"<string>\",\n    \"identities\": [\n      {\n        \"type\": \"<string>\",\n        \"value\": \"<string>\"\n      },\n      {\n        \"type\": \"<string>\",\n        \"value\": \"<string>\"\n      }\n    ],\n    \"organization\": {\n      \"name\": \"<string>\"\n    },\n    \"organization_id\": \"<integer>\",\n    \"role\": \"<string>\"\n  }\n}",
          "options": {
            "raw": {
              "headerFamily": "json",
              "language": "json"
            }
          }
        },
        "url": {
          "raw": "{{baseUrl}}/api/v2/users/:user_id/merge",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "v2",
            "users",
            ":user_id",
            "merge"
          ],
          "variable": [
            {
              "key": "user_id"
            }
          ]
        }
      },
      "status": "OK",
      "code": 200,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Content-Type",
          "value": "application/json"
        }
      ],
      "cookie": [
      ],
      "body": "{\n  \"user\": {\n    \"name\": \"<string>\",\n    \"active\": \"<boolean>\",\n    \"alias\": \"<string>\",\n    \"chat_only\": \"<boolean>\",\n    \"created_at\": \"<string>\",\n    \"custom_role_id\": \"<integer>\",\n    \"default_group_id\": \"<integer>\",\n    \"details\": \"<string>\",\n    \"email\": \"<string>\",\n    \"external_id\": \"<string>\",\n    \"iana_time_zone\": \"<string>\",\n    \"id\": \"<integer>\",\n    \"last_login_at\": \"<string>\",\n    \"locale\": \"<string>\",\n    \"locale_id\": \"<integer>\",\n    \"moderator\": \"<boolean>\",\n    \"notes\": \"<string>\",\n    \"only_private_comments\": \"<boolean>\",\n    \"organization_id\": \"<integer>\",\n    \"phone\": \"<string>\",\n    \"photo\": {\n      \"dolorea1\": false,\n      \"deserunt3\": 95124319.10825741\n    },\n    \"remote_photo_url\": \"<string>\",\n    \"report_csv\": \"<boolean>\",\n    \"restricted_agent\": \"<boolean>\",\n    \"role\": \"<string>\",\n    \"role_type\": \"<integer>\",\n    \"shared\": \"<boolean>\",\n    \"shared_agent\": \"<boolean>\",\n    \"shared_phone_number\": \"<boolean>\",\n    \"signature\": \"<string>\",\n    \"suspended\": \"<boolean>\",\n    \"tags\": \"<array>\",\n    \"ticket_restriction\": \"<string>\",\n    \"time_zone\": \"<string>\",\n    \"two_factor_auth_enabled\": \"<boolean>\",\n    \"updated_at\": \"<string>\",\n    \"url\": \"<string>\",\n    \"user_fields\": {\n      \"nostrudacc\": -12929960.546221554,\n      \"in_80e\": 25167751.960886702,\n      \"proident_e2\": true,\n      \"voluptate_98\": -58995022\n    },\n    \"verified\": \"<boolean>\"\n  }\n}"
    }
  ]
}