LeadSail
SMS

Send an SMS message

Sends an SMS message to a lead. Only the lead ID and message are required — the recipient phone, sender phone, and SMS provider are automatically resolved from the lead and campaign configuration. The recipient defaults to the lead phone on file. The sender is resolved from the campaign assigned phone number, then the SMS agent phone, then the first SMS-capable number. The provider follows the campaign-level override, then the tenant default, then Vonage. If an interactionId is provided, the message is appended to an existing conversation. Otherwise, the system finds or creates a conversation automatically.

POST
/api/v1/sms/send

Authorization

ApiKeyAuth
X-API-Key<token>

API key generated from your Vayaflow dashboard Settings page

In: header

Request Body

application/json

leadId*string

The lead to send the SMS to

message*string

The SMS message body (1–1600 characters).

Length1 <= length <= 1600
to?string

Override the recipient phone number (E.164 format). If omitted, uses the lead's phone on file.

from?string

Override the sender phone number. If omitted, auto-resolves from the campaign's assigned phone number.

campaignId?string

Override the lead's campaign for sender resolution. If omitted, uses the lead's assigned campaign.

interactionId?string

Append to an existing SMS conversation. If omitted, a new conversation is created or an existing one is found automatically.

Response Body

application/json

application/json

application/json

application/json

package mainimport (  "fmt"  "net/http"  "io/ioutil"  "strings")func main() {  url := "https://api.leadsail.app/api/v1/sms/send"  body := strings.NewReader(`{    "leadId": "lead_abc123",    "message": "Hi John, just following up on your inquiry."  }`)  req, _ := http.NewRequest("POST", url, body)  req.Header.Add("Content-Type", "application/json")  res, _ := http.DefaultClient.Do(req)  defer res.Body.Close()  body, _ := ioutil.ReadAll(res.Body)  fmt.Println(res)  fmt.Println(string(body))}
{
  "success": true,
  "data": {
    "messageId": "msg_abc123",
    "status": "sent",
    "interactionId": "int_abc123"
  }
}
{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Invalid input data",
    "details": [
      "string"
    ]
  }
}
{
  "success": false,
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Authentication required"
  }
}
{
  "success": false,
  "error": {
    "code": "NOT_FOUND",
    "message": "Resource not found"
  }
}