Visual Basic 6.0 Dynamics CRM: Get an Account's Contacts

Back to Index

Returns the full name, email address, and phone number for each of an account's contacts. This example gets the contacts for the Coho Winery account (accountid = b0a19cdd-88df-e311-b8e5-6c3be5a8b200).

Documentation: https://docs.microsoft.com/en-us/dynamics365/customer-engagement/web-api/contact?view=dynamics-ce-odata-9

CURL Command

curl -X GET https://my-dynamics-domain.api.crm.dynamics.com/api/data/v9.0/contacts \
  -H "Accept: application/json" \
  -H "OData-MaxVersion: 4.0"  \
  -H "OData-Version: 4.0" \
  -d "$select=fullname,emailaddress1,telephone1" \
  -d "$filter=_parentcustomerid_value eq b0a19cdd-88df-e311-b8e5-6c3be5a8b200" \
  -H "Authorization: Bearer DYNAMICS_CRM_ACCESS_TOKEN"

Visual Basic 6.0 Example

Dim rest As New ChilkatRest
Dim success As Long

'  URL: https://my-dynamics-domain.api.crm.dynamics.com/api/data/v9.0/contacts
Dim bTls As Long
bTls = 1
Dim port As Long
port = 443
Dim bAutoReconnect As Long
bAutoReconnect = 1
success = rest.Connect("my-dynamics-domain.api.crm.dynamics.com",port,bTls,bAutoReconnect)
If (success <> 1) Then
    Debug.Print "ConnectFailReason: " & rest.ConnectFailReason
    Debug.Print rest.LastErrorText
    Exit Sub
End If

success = rest.AddQueryParam("$select","fullname,emailaddress1,telephone1")
success = rest.AddQueryParam("$filter","_parentcustomerid_value eq b0a19cdd-88df-e311-b8e5-6c3be5a8b200")

success = rest.AddHeader("OData-MaxVersion","4.0")
success = rest.AddHeader("Accept","application/json")
success = rest.AddHeader("OData-Version","4.0")
success = rest.AddHeader("Authorization","Bearer DYNAMICS_CRM_ACCESS_TOKEN")

Dim sbResponseBody As New ChilkatStringBuilder
success = rest.FullRequestNoBodySb("GET","/api/data/v9.0/contacts",sbResponseBody)
If (success <> 1) Then
    Debug.Print rest.LastErrorText
    Exit Sub
End If

Dim respStatusCode As Long
respStatusCode = rest.ResponseStatusCode
If (respStatusCode >= 400) Then
    Debug.Print "Response Status Code = " & respStatusCode
    Debug.Print "Response Header:"
    Debug.Print rest.ResponseHeader
    Debug.Print "Response Body:"
    Debug.Print sbResponseBody.GetAsString()
    Exit Sub
End If

Dim jsonResponse As New ChilkatJsonObject
success = jsonResponse.LoadSb(sbResponseBody)

Dim i As Long
Dim count_i As Long

Dim odataContext As String
odataContext = jsonResponse.StringOf("""@odata.context""")
i = 0
count_i = jsonResponse.SizeOfArray("value")
Do While i < count_i
    jsonResponse.I = i
    Dim odataEtag As String
    odataEtag = jsonResponse.StringOf("value[i].""@odata.etag""")
    Dim fullname As String
    fullname = jsonResponse.StringOf("value[i].fullname")
    Dim emailaddress1 As String
    emailaddress1 = jsonResponse.StringOf("value[i].emailaddress1")
    Dim telephone1 As String
    telephone1 = jsonResponse.StringOf("value[i].telephone1")
    Dim contactid As String
    contactid = jsonResponse.StringOf("value[i].contactid")
    i = i + 1
Loop

Sample JSON Response Body

{
  "@odata.context": "https://mydomain.api.crm.dynamics.com/api/data/v9.0/$metadata#contacts(fullname,emailaddress1,telephone1)",
  "value": [
    {
      "@odata.etag": "W/\"1162014\"",
      "fullname": "Cat Francis",
      "emailaddress1": "Cat@cohowinery.com",
      "telephone1": "123-879-9879",
      "contactid": "51a0e5b9-88df-e311-b8e5-6c3be5a8b200"
    },
    {
      "@odata.etag": "W/\"1162210\"",
      "fullname": "Tomasz Bochenek",
      "emailaddress1": "tom@cohowinery.com",
      "telephone1": "456-698-4581",
      "contactid": "1fa1e5b9-88df-e311-b8e5-6c3be5a8b200"
    },
    {
      "@odata.etag": "W/\"1162593\"",
      "fullname": "Kari Furse",
      "emailaddress1": "kari@cohowinery.com",
      "telephone1": "178-854-4576",
      "contactid": "9ba2e5b9-88df-e311-b8e5-6c3be5a8b200"
    },
    {
      "@odata.etag": "W/\"1162714\"",
      "fullname": "Wilson Pais",
      "emailaddress1": "wilson@cohowinery.com",
      "telephone1": "456-698-4582",
      "contactid": "6fa5e5b9-88df-e311-b8e5-6c3be5a8b200"
    }
  ]
}