Sample code for 30+ languages & platforms
Tcl Requires Chilkat v11.0.0+

SugarCRM: Importing Email Addresses (New Records)

See more SugarCRM Examples

Demonstrates how to import a new contact with email addresses.

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

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

set http [new_CkHttp]

CkHttp_put_Accept $http "application/json"

#  The following JSON is sent in the request body:

#  {
#    "first_name": "Rob",
#    "last_name": "Robertson",
#    "email": [
#      {
#        "email_address": "rob.robertson@sugar.crm",
#        "primary_address": "1",
#        "invalid_email": "0",
#        "opt_out": "0"
#      },
#      {
#        "email_address": "rob@sugar.crm",
#        "primary_address": "0",
#        "invalid_email": "0",
#        "opt_out": "1"
#      }
#    ]
#  }

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

set jsonRequestBody [new_CkJsonObject]

CkJsonObject_UpdateString $jsonRequestBody "first_name" "Rob"
CkJsonObject_UpdateString $jsonRequestBody "last_name" "Robertson"
CkJsonObject_UpdateString $jsonRequestBody "email[0].email_address" "rob.robertson@sugar.crm"
CkJsonObject_UpdateString $jsonRequestBody "email[0].primary_address" "1"
CkJsonObject_UpdateString $jsonRequestBody "email[0].invalid_email" "0"
CkJsonObject_UpdateString $jsonRequestBody "email[0].opt_out" "0"
CkJsonObject_UpdateString $jsonRequestBody "email[1].email_address" "rob@sugar.crm"
CkJsonObject_UpdateString $jsonRequestBody "email[1].primary_address" "0"
CkJsonObject_UpdateString $jsonRequestBody "email[1].invalid_email" "0"
CkJsonObject_UpdateString $jsonRequestBody "email[1].opt_out" "1"

set url "http://<site url>/rest/v10/Contacts"

CkHttp_SetRequestHeader $http "OAuth-Token" "ACCESS_TOKEN"

set resp [new_CkHttpResponse]

set success [CkHttp_HttpJson $http "POST" $url $jsonRequestBody "application/json" $resp]
if {$success == 0} then {
    puts [CkHttp_lastErrorText $http]
    delete_CkHttp $http
    delete_CkJsonObject $jsonRequestBody
    delete_CkHttpResponse $resp
    exit
}

puts "Response Status Code: [CkHttpResponse_get_StatusCode $resp]"

set jsonResponse [new_CkJsonObject]

CkJsonObject_Load $jsonResponse [CkHttpResponse_bodyStr $resp]
CkJsonObject_put_EmitCompact $jsonResponse 0
puts [CkJsonObject_emit $jsonResponse]

if {[CkHttpResponse_get_StatusCode $resp] >= 300} then {
    puts "Failed."
    delete_CkHttp $http
    delete_CkJsonObject $jsonRequestBody
    delete_CkHttpResponse $resp
    delete_CkJsonObject $jsonResponse
    exit
}


delete_CkHttp $http
delete_CkJsonObject $jsonRequestBody
delete_CkHttpResponse $resp
delete_CkJsonObject $jsonResponse