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 |