Go
Send SMS or MMS with the CloudContactAI Go SDK
Learn how to send your first SMS or MMS using the CCAI Go SDK
Prerequisites
To get the most out of this guide, you'll need to:
- Sign up for a CCAI Paid Plan
- Create an API Key
- Get your Client ID
- Watch this video if you need help
-
1. Install
Get the CCAI Go SDK.
go get github.com/cloudcontactai/ccai-go
2. Send SMS message
package main
import (
"fmt"
"log"
"github.com/cloudcontactai/ccai-go/pkg/ccai"
"github.com/cloudcontactai/ccai-go/pkg/sms"
)
func main() {
// Initialize the client
client, err := ccai.NewClient(ccai.Config{
ClientID: "YOUR-CLIENT-ID",
APIKey: "YOUR-API-KEY",
})
if err != nil {
log.Fatalf("Failed to create CCAI client: %v", err)
}
// Send a single SMS
response, err := client.SMS.SendSingle(
"John",
"Doe",
"+15551234567",
"Hello ${firstName}, this is a test message!",
"Test Campaign",
nil,
)
if err != nil {
log.Fatalf("Failed to send SMS: %v", err)
}
fmt.Printf("Message sent with ID: %s\n", response.ID)
// Send to multiple recipients
accounts := []sms.Account{
{
FirstName: "John",
LastName: "Doe",
Phone: "+15551234567",
},
{
FirstName: "Jane",
LastName: "Smith",
Phone: "+15559876543",
},
}
campaignResponse, err := client.SMS.Send(
accounts,
"Hello ${firstName} ${lastName}, this is a test message!",
"Bulk Test Campaign",
nil,
)
if err != nil {
log.Fatalf("Failed to send bulk SMS: %v", err)
}
fmt.Printf("Campaign sent with ID: %s\n", campaignResponse.CampaignID)
}
3. Send MMS message
package main
import (
"fmt"
"log"
"github.com/cloudcontactai/ccai-go/pkg/ccai"
"github.com/cloudcontactai/ccai-go/pkg/sms"
)
func main() {
// Initialize the client
client, err := ccai.NewClient(ccai.Config{
ClientID: "YOUR-CLIENT-ID",
APIKey: "YOUR-API-KEY",
})
if err != nil {
log.Fatalf("Failed to create CCAI client: %v", err)
}
// Define progress tracking
options := &sms.Options{
Timeout: 60,
OnProgress: func(status string) {
fmt.Printf("Progress: %s\n", status)
},
}
// Complete MMS workflow (get URL, upload image, send MMS)
imagePath := "path/to/your/image.jpg"
contentType := "image/jpeg"
// Define recipient
account := sms.Account{
FirstName: "John",
LastName: "Doe",
Phone: "+15551234567", // Use E.164 format
}
// Send MMS with image in one step
response, err := client.MMS.SendWithImage(
imagePath,
contentType,
[]sms.Account{account},
"Hello ${firstName}, check out this image!",
"MMS Campaign Example",
options,
true,
)
if err != nil {
log.Fatalf("Error sending MMS: %v", err)
}
fmt.Printf("MMS sent! Campaign ID: %s\n", response.CampaignID)
}
4. Try it yourself
See the full source code here.
Updated 1 day ago