Until texting opens
- Twilio can’t be connected: its row in Integrations > Connections says Coming soon and opens nothing.
- A contact who reaches a Send SMS step (in a campaign that already had one) waits there with Waiting for text messages to open in Kerux (coming soon): nothing is sent or charged, it goes on by itself. Before launch, a campaign with a Send SMS step shows Text messages: coming soon. Remove the step if you don’t want contacts to wait.
- A reply in an SMS conversation in the inbox isn’t sent: Not sent: text messages are coming soon in Kerux.
- Create with AI leaves Send SMS steps out and says so in its notes.
- You can already record each contact’s consent to get texts (see Sending rules and consent).
Set it up (once texting opens)
Copy your Twilio keys
Connect Twilio in Kerux
Send replies to Kerux
Say who sends
Add a Send SMS step
{{contact.first_name}} work like in a LinkedIn message.Record each contact's consent
How texts are sent
- Only to contacts with a recorded consent for that phone. The others wait at the step with Waiting for consent: texts go only to people who agreed. Record it on the contact (in Needs attention, Record consent opens the contact). Before launch, the checks say how many contacts have no consent.
- Only from 8:00 to 21:00 in the contact’s own time (from 8:00 to 20:00, and at most 3 texts a day, in Florida, Oklahoma and Maryland). Kerux reads where the contact is from their location and their phone’s area code, and when it isn’t sure it waits for an hour that is fine everywhere they could be. Contacts wait with Waiting for the contact’s local hours for texts (8:00 to 21:00, stricter in some states) and go on by themselves.
- The first text a contact gets in a campaign starts with your company name (for example Northwind: Hi Ana…) and ends with Reply STOP to opt out., unless your text already has them. The step panel says so.
- To the contact’s Phone, written with its country code (like +1 415 555 0101). A contact without a phone, or with one that has no country code, waits in Needs attention: type the phone under Fill it in on the contact (the step goes on by itself) and click Save and continue, or choose Skip this step or Retry now. Once you fix the phone, the step continues by itself.
- Never with an empty variable: a text that would go out with a blank waits in Needs attention instead.
- Inside the campaign’s sending hours, with a short random gap (20 to 90 seconds) between two texts from the same number.
- Up to the number’s daily limit: 100 texts a day by default. Change it in Texts a day next to the number (1 to 1,000). The Twilio panel shows how many each number sent in the last 24 hours. When a number reaches its limit, contacts wait with Waiting: the Twilio number sent its texts for today and go on by themselves later.
- One text is up to 1,600 characters. Twilio bills it in parts: one part holds 160 characters, and a longer text goes in parts of 153. An emoji or a character outside the basic SMS alphabet (like á, í, ó, ú or curly quotes) changes that to 70 characters for one part and 67 per part, and most emoji count as two.
^ { } \ [ ~ ] |and€count as two characters. The step shows the estimate (variables count as their name until the contact’s real value fills them) and, for such a text, says It has an emoji or a character outside the basic SMS alphabet, so each text holds 70 characters (67 when split). - If Twilio can’t be reached at all (nothing was sent), the contact waits with Twilio couldn’t be reached, so the text wasn’t sent: it tries again by itself and Kerux tries again a few times. If it still can’t, the contact waits in Home > Tasks.
Replies, STOP and START
- When a contact texts back from the phone in their details, it counts as their reply: the campaign stops for them, like a LinkedIn reply (unless you turned off the Replies switch, Stop when the contact replies, in the campaign’s Settings; then a Wait until step waiting for their reply moves on). Their text is on the contact’s history as Texted back and in the inbox, in their SMS conversation with that number, where you can answer it (with the same rules: consent, STOP and their own hours).
- A contact who texts STOP (or STOPALL, UNSUBSCRIBE, CANCEL, END, QUIT, REVOKE, OPT OUT, or plain words like “stop texting me”, “remove me”, “wrong number”, also in Spanish, German and French) is never texted again from this workspace, and their consent no longer counts: their history says Texted STOP: never texted again, and a later Send SMS step takes them out of that campaign without sending, with Text not sent: this phone texted STOP. A STOP also counts as their reply. If they text START, they can get texts again (Texted START: can get texts again), and that counts as their consent. The Twilio panel shows how many phones texted STOP.
- The SMS reply received campaign trigger (Kerux events) starts a campaign when a contact texts back. A STOP never starts anything, and people who aren’t contacts are ignored.
- Two contacts with the same phone: the reply goes to the one Kerux texted. If that isn’t exactly one contact, nobody is moved and owners and admins get a notification to keep the phone on one contact only.
- Your webhooks get a text back as
sms.message_received(withmessage.textandmessage.channelset tosms), never as a LinkedIn message.
Common problems
Twilio refused these keys
Twilio refused these keys
No number can send texts
No number can send texts
Trial account
Trial account
Replies don't show up in Kerux
Replies don't show up in Kerux
We can't confirm the text went out
We can't confirm the text went out
Twilio says the phone isn't valid
Twilio says the phone isn't valid
Twilio refused the text for another reason
Twilio refused the text for another reason
Contacts wait with Waiting for consent
Contacts wait with Waiting for consent
Texts wait for who sends
Texts wait for who sends
Texts wait for an admin to confirm consent and 10DLC
Texts wait for an admin to confirm consent and 10DLC
Launch says a Send SMS step has no number
Launch says a Send SMS step has no number
A number says Gone
A number says Gone
API and MCP
While text messages are coming soon, connecting Twilio through the API answers403 SMS_COMING_SOON (nothing is saved or charged). Everything in the Twilio panel is in the public API and so in Kerux’s MCP server: GET /v1/sms (the account, its numbers and the reply URL), POST /v1/sms/twilio (connect with account_sid and auth_token, or api_key_sid and api_key_secret, plus attest: true the first time), POST /v1/sms/twilio/test, DELETE /v1/sms/twilio, PATCH /v1/sms-numbers/{id} (daily_limit), POST /v1/sms-numbers/{id}/replies-to-kerux and GET /v1/sms-opt-outs. Connecting, replacing or disconnecting the keys and sending replies to Kerux need an API key with admin (a connected app such as claude.ai or ChatGPT can’t). Keys go in and never come back out. A contact’s consent is POST /v1/leads/{id}/consent (see Sending rules and consent). Send SMS steps are part of the campaign like any other step (type: "sms", with text and an optional numberId).