Sample code for 30+ languages & platforms
Xbase++ 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 Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL oHttp
LOCAL oJsonRequestBody
LOCAL cUrl
LOCAL oResp
LOCAL oJsonResponse

nSuccess := 0

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

oHttp := CreateObject("Chilkat.Http")

oHttp:Accept := "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

oJsonRequestBody := CreateObject("Chilkat.JsonObject")
oJsonRequestBody:UpdateString("first_name", "Rob")
oJsonRequestBody:UpdateString("last_name", "Robertson")
oJsonRequestBody:UpdateString("email[0].email_address", "rob.robertson@sugar.crm")
oJsonRequestBody:UpdateString("email[0].primary_address", "1")
oJsonRequestBody:UpdateString("email[0].invalid_email", "0")
oJsonRequestBody:UpdateString("email[0].opt_out", "0")
oJsonRequestBody:UpdateString("email[1].email_address", "rob@sugar.crm")
oJsonRequestBody:UpdateString("email[1].primary_address", "0")
oJsonRequestBody:UpdateString("email[1].invalid_email", "0")
oJsonRequestBody:UpdateString("email[1].opt_out", "1")

cUrl := "http://<site url>/rest/v10/Contacts"

oHttp:SetRequestHeader("OAuth-Token", "ACCESS_TOKEN")

oResp := CreateObject("Chilkat.HttpResponse")
nSuccess := oHttp:HttpJson("POST", cUrl, oJsonRequestBody, "application/json", oResp)
IF (nSuccess == 0)
    ? oHttp:LastErrorText
    oHttp:destroy()
    oJsonRequestBody:destroy()
    oResp:destroy()
    RETURN
ENDIF

? "Response Status Code: " + Str(oResp:StatusCode)

oJsonResponse := CreateObject("Chilkat.JsonObject")
oJsonResponse:Load(oResp:BodyStr)
oJsonResponse:EmitCompact := 0
? oJsonResponse:Emit()

IF (oResp:StatusCode >= 300)
    ? "Failed."
    oHttp:destroy()
    oJsonRequestBody:destroy()
    oResp:destroy()
    oJsonResponse:destroy()
    RETURN
ENDIF

oHttp:destroy()
oJsonRequestBody:destroy()
oResp:destroy()
oJsonResponse:destroy()