SObjects API

Create, read, update, and delete Salesforce records with the SObjects service.

Create a Record

Go
result, err := client.SObjects().Create(ctx, "Account", map[string]interface{}{
    "Name":     "Acme Corporation",
    "Industry": "Technology",
    "Website":  "https://acme.com",
})
if err != nil {
    log.Fatal(err)
}
fmt.Println("Created ID:", result.ID)

Get a Record

Go
// Get all fields
record, err := client.SObjects().Get(ctx, "Account", "001xx000003DGbYAAW")

// Get specific fields only
record, err := client.SObjects().Get(ctx, "Account", accountID, 
    "Id", "Name", "Industry")

// Access field values
name := record.StringField("Name")
revenue := record.FloatField("AnnualRevenue")
isActive := record.BoolField("Active__c")

Update a Record

Go
err := client.SObjects().Update(ctx, "Account", accountID, map[string]interface{}{
    "Description": "Updated description",
    "Rating":      "Hot",
})

Upsert by External ID

Go
result, err := client.SObjects().Upsert(ctx, 
    "Account",           // Object type
    "External_ID__c",    // External ID field
    "EXT-12345",         // External ID value
    map[string]interface{}{
        "Name": "Updated Account",
    },
)

Delete a Record

Go
err := client.SObjects().Delete(ctx, "Account", accountID)

Describe Object

Go
// Get metadata for an object
meta, err := client.SObjects().Describe(ctx, "Account")

fmt.Println("Label:", meta.Label)
fmt.Println("Createable:", meta.Createable)

for _, field := range meta.Fields {
    fmt.Printf("Field: %s (%s)\n", field.Name, field.Type)
}

List All Objects

Go
global, err := client.SObjects().DescribeGlobal(ctx)

for _, obj := range global.SObjects {
    if obj.Queryable {
        fmt.Println(obj.Name, "-", obj.Label)
    }
}

Get Deleted Records

Go
start := time.Now().Add(-24 * time.Hour)
end := time.Now()

deleted, err := client.SObjects().GetDeleted(ctx, "Account", start, end)

for _, record := range deleted.DeletedRecords {
    fmt.Printf("Deleted: %s at %s\n", record.ID, record.DeletedDate)
}

Available Methods

Method Description
Create() Create a new record
Get() Retrieve a record by ID
Update() Update an existing record
Upsert() Insert or update by external ID
Delete() Delete a record
Describe() Get object metadata
DescribeGlobal() List all objects
GetDeleted() Get deleted records
GetUpdated() Get updated record IDs
GetByExternalID() Get by external ID