Browse documentation

SMS provider setup

Current release · Updated October 2, 2026

Paste a provider cURL, map its JSON parameters and reuse it for campaign steps.

Use a literal provider example

Choose SMS connection and paste one HTTPS POST with a JSON object body. Enter private credentials only in the connection form. The parser reads request URL, headers and body; it never executes shell commands. Supported flags are request, URL, header and data/data-raw/data-binary. Files, shell substitutions/operators, redirects, proxies, localhost/private hosts and non-443 destinations are blocked.

Map one recipient and the message

Inspect the body parameters, choose the existing recipient path, and optionally choose a message path. For an MSG91 flow with one recipients entry, recipient path is recipients.0.mobiles. Put {{variables.var}} in an existing template-variable body value and supply var in each SMS step; a generic text provider can use a message path instead.

Keep exactly one recipient entry in the source JSON when mapping array parameters. DryKraft enrolls and sends one recipient at a time. Stored recipient replacement uses the international phone without the leading +; make sure that format matches the provider. Config verification checks the destination and body, not provider authorization or message delivery.

Review outcomes

A saved connection sends nothing. A confirmed campaign launch sends actual messages using the stored private headers/body and personalized variables. Activity reports request acceptance when the provider acknowledges it. SMS delivery receipts, incoming SMS replies and opt-out keywords are not wired; add manual channel suppression when appropriate.