NetSendo Logo

Email + SMS marketing automation on your own server

Updated: · 12 min read · NetSendo Team

Cover: Email + SMS marketing automation on your own server, with five SMS providers and per-message prices to the US and Poland

When does it make sense to combine email and SMS?

Add SMS when a message is short, time-sensitive and expected by the recipient. Email stays the main channel for everything with content, images or links you want people to read. SMS costs money per message, can't be ignored as easily, and wears out quickly if you overuse it. It works best as a second step for people who didn't react to email, or for messages where a delay costs you something.

Message Better channel Why
Newsletter, product launch, long offer Email Room for content; costs a fraction of a cent per recipient
Abandoned cart, first reminder Email Can show the cart and products
Abandoned cart, last reminder SMS (with consent) Short nudge to people who didn't click the email
Appointment or webinar reminder SMS + email Timing matters; SMS is usually read quickly
Order shipped, booking confirmed Transactional SMS or email Expected by the customer; check whether it is marketing in your country
Win-back after months of silence Email first, SMS last SMS to people who haven't engaged in a long time can feel intrusive

The rule of thumb: every SMS should be something the recipient would be annoyed to miss. If not, send an email.

How does email + SMS work on a self-hosted platform?

On a self-hosted platform, email and SMS share the same contacts, automations and funnels, but each channel goes out through its own provider. NetSendo sends email through the mailbox you connect (Amazon SES, Mailgun, SendGrid, the Gmail API, any SMTP server or its own NMI mail server) and SMS through an SMS provider you configure under Settings > SMS Providers (configuration docs). Neither channel has a NetSendo sending limit or markup: you pay the providers.

What NetSendo documents for SMS:

  • Five providers: Twilio, Vonage, MessageBird, Plivo and SMSAPI (Polish and international endpoints).
  • SMS lists: a list is either email or sms; on an SMS list the phone number with country code is required (API documentation).
  • Provider per message or list: a message can use a specific provider, otherwise the list's default, otherwise the account default. Each provider can have a daily limit.
  • Personalisation: the same placeholders as email, such as [[fname]], custom fields and the [[unsubscribe]] link.
  • Funnels with SMS steps: a funnel can mix email, SMS, delay, "wait until" (a date, a weekday or business hours), condition, split and goal steps. An SMS step is skipped for a subscriber with no phone number.
  • API and webhooks: POST /api/v1/sms/send (with optional schedule_at), POST /api/v1/sms/batch (to a list, tags or subscriber IDs), status and provider endpoints, and sms.sent and sms.failed webhooks with error codes such as NO_PHONE, NO_PROVIDER and DAILY_LIMIT.
  • AI tools: the MCP server (140 tools in @netsendo/mcp-client 1.6.0) includes send_sms, get_sms_status and list_sms_providers. See the agents page and our guide to the self-hosted MCP server for email marketing.

Automation rules themselves have no "send SMS" action. To send an SMS from an automation, start a funnel that contains an SMS step, or call a webhook.

Version note. NetSendo's changelog records that SMS jobs failed before reaching the provider until a fix made after release 2.1.3 (2026-09-14). The same unreleased batch made funnel SMS and "wait until" steps run, made funnel triggers enrol subscribers, fired the sms.sent and sms.failed webhooks and enforced per-list sending schedules. On 2026-10-17 these fixes were listed as "Unreleased". Run a release newer than 2.1.3 and send test messages to your own number before you go live.

Which SMS provider should you use?

Pick the provider by where your recipients are. For US numbers Twilio, Plivo and Bird publish low per-segment base rates, plus carrier fees and 10DLC registration. For Polish numbers SMSAPI is the local option, with prices in PLN and a verified sender name; the global providers charge roughly the same or more per message to Poland.

Provider US price per segment Poland price per SMS Sender and registration notes
Twilio $0.0083 + carrier fee $0.0035–$0.0050 (10DLC and toll-free) $0.0457 US: A2P 10DLC registration for long codes. Alphanumeric sender ID is free, send-only, supported in 150 locales
Vonage not captured (the price selector did not switch from Poland) $0.04843 Price shown for Poland; Vonage says to check the dashboard for current prices
MessageBird (now Bird) $0.0035 per long-code segment + carrier fees (listed separately) not checked MessageBird rebranded as Bird in 2024. NetSendo's connector calls the classic MessageBird REST API; confirm your Bird account can use it
Plivo $0.0077 (long code), $0.0079 (toll-free) + carrier surcharge $0.0035–$0.0050 $0.0285–$0.0496 by network ("others" $0.0683) Per-network pricing in Poland
SMSAPI international SMS: 0.35 PLN net to supported countries 0.11–0.17 PLN net prepaid (about $0.028–$0.044) Sender name up to 11 characters, verified within one business day; recipients cannot reply to it. Postpaid: 0.08–0.16 PLN plus a 49 PLN net monthly fee

Prices as listed on each provider's pricing page on 2026-10-17: Twilio US, Twilio Poland, Vonage, Bird, Plivo US, Plivo Poland, SMSAPI. USD unless noted; SMSAPI in PLN net, converted at the NBP rate of 16.10.2026 (1 USD = 3.8827 PLN). Volume discounts, number rental and registration fees are extra.

Range bar chart of the price per SMS to the United States and to Poland for Twilio, Plivo, Bird, Vonage and SMSAPI, in US dollars Price of one single-segment SMS, including US carrier fees where the provider lists them. Bird's US figure excludes carrier fees. Prices checked 2026-10-17.

A few practical points:

  • Segments. One SMS holds 160 GSM-7 characters or 70 Unicode characters (NetSendo SMS configuration). An emoji or a letter outside the GSM alphabet switches the whole message to Unicode, and longer texts are billed as several parts.
  • Sender. In the US you send from a registered 10DLC, toll-free or short code number. In many other countries you can use an alphanumeric sender name, but recipients can't reply to it, so a STOP reply doesn't work there.
  • Test first. SMSAPI's connector in NetSendo has a test mode, and every provider has trial credit or a test number. Send to yourself before sending to a list.

Not legal advice. This section summarises official sources as of 2026-10-17. Rules differ by country and change; check them with a lawyer for your situation.

The common rule in the US, the EU and Poland: get clear, recorded consent before sending marketing SMS, make opting out easy, and honour opt-outs immediately.

United States: TCPA, 10DLC and carrier rules

  • Consent. The FCC's consumer guide says its rules ban autodialed texts to mobile phones without prior consent and that "commercial texts require written consent". Consumers may opt out "at any time and in any reasonable manner" (FCC).
  • 10DLC registration. "Anyone sending SMS/MMS messages over a 10DLC number from an application to the US must register for A2P 10DLC" (Twilio). Twilio lists a one-time $4.50 brand registration fee plus $41.50 for Standard brand vetting on that page, and a one-time $15 campaign vetting fee with $1.50–$10 per campaign per month on its 10DLC page. The two pages differ slightly on brand fees, so check the Twilio Console for the amount that applies to you.
  • Carrier best practices. The CTIA principles ask senders to state in their messages how to opt out, to use standard "STOP" wording, and to honour normal-language requests such as stop, end, unsubscribe, cancel and quit. Senders should send one final confirmation and keep records of opt-ins and opt-outs (CTIA).

European Union: ePrivacy

The ePrivacy Directive defines "electronic mail" as "any text, voice, sound or image message sent over a public communications network", which covers SMS. Article 13 allows direct marketing by electronic mail only with prior consent, with an exception for a company's own similar products sold to existing customers, who must be able to object easily and free of charge in every message (EUR-Lex). Member states implement this in national law, so details differ. Consent also has to meet GDPR standards.

Poland: Electronic Communications Law

Since 10 November 2024 the Polish rule is in Art. 398 of the Prawo komunikacji elektronicznej (Electronic Communications Law), which replaced the old telecommunications law (ISAP). It prohibits using telecommunications terminal equipment and automated calling systems to send commercial information, including direct marketing, unless the recipient has given prior consent. Sending it may not be at the recipient's expense, and a breach is also an act of unfair competition. Art. 400 applies data-protection rules to obtaining that consent. Art. 398 as published contains no separate existing-customer exception like Article 13(2) of the directive, so collect an explicit SMS consent.

What NetSendo handles, and what you must set up

  • Consent records: store the consent source, wording and timestamp in custom fields on the contact. NetSendo keeps the signup source on each list membership.
  • Unsubscribe link: put [[unsubscribe]] in marketing SMS, especially when you send from an alphanumeric sender that can't receive replies.
  • STOP replies: NetSendo's documentation does not describe processing inbound SMS. Twilio handles the default English opt-out keywords (STOP, UNSUBSCRIBE, END, QUIT, STOPALL, REVOKE, OPTOUT, CANCEL) on long codes and blocks later messages with error 21610 (Twilio). Mirror those opt-outs in NetSendo by setting the contact's SMS list membership to unsubscribed, for example from an n8n workflow or the API.
  • Separate lists per channel: keep SMS subscribers on an SMS list so that email consent never turns into SMS sending by accident.

Self-hosting keeps phone numbers on infrastructure you control, which helps with GDPR obligations. Your SMS provider still processes the numbers, so it needs a data processing agreement like any other processor. Compliance depends on how you run the system.

Example email + SMS flows you can build in NetSendo

The three flows below use only documented NetSendo features. Each one starts with email and uses SMS sparingly.

Abandoned-cart flow in a NetSendo funnel: trigger from the pending-orders list, wait 1 hour, email, wait 1 day, condition clicked, SMS for non-clickers during business hours, with buyers removed by an automation An abandoned-cart funnel that combines email and SMS. Steps match NetSendo's funnel step types (2026-10-17).

1. Abandoned cart: email first, SMS for the last nudge

  1. Entry. The NetSendo for WooCommerce plugin adds customers with unpaid orders to a Pending orders list (plugin readme); the funnel trigger is a signup to that list. Alternatively, use the pixel_cart_abandoned automation trigger with the Start funnel action.
  2. Funnel steps. Wait 1 hour → email with the cart reminder → wait 1 day → condition "clicked the email" → if not, "wait until" business hours → SMS → end.
  3. Exit for buyers. An automation on signup to the Buyers list runs Stop funnel, so people who paid don't get reminders.
  4. Phone numbers. The plugin doesn't pass phone numbers. The SMS step only reaches customers whose number and SMS consent you collected elsewhere.

For the store side of this setup, including Shopify and Stripe, see our self-hosted Klaviyo alternative.

2. Appointment reminders

  1. Entry. NetSendo's Calendly integration adds invitees to lists and tags per event type when a booking is made. A funnel triggered by that tag sends a confirmation email right away and, for contacts with a phone number, a short confirmation SMS.
  2. The reminder before the appointment. Funnel delays count from enrolment, and "wait until" waits for a fixed date, weekday or business hours, not for each person's appointment time. Schedule the "see you tomorrow" SMS through the API instead: POST /api/v1/sms/send with schedule_at set from the booking time, called from your booking system or an n8n workflow.
  3. Follow-up. After the appointment, an email asking for feedback or offering the next booking.

3. Win-back

  1. Find inactive contacts. NetSendo's bulk list operations accept filters such as never_opened and subscribed_before; use them to tag contacts who haven't engaged. (The automation trigger subscriber_inactive exists in the catalogue but is marked "not emitted yet", so don't rely on it.)
  2. Funnel. Start from the built-in Re-engagement template (source): "we miss you" email → wait 3 days → condition → special offer or last-chance email. Add one SMS step for contacts who still didn't react and who have SMS consent.
  3. Clean up. Contacts who don't respond to the last message leave the list. Funnel conditions can end with an unsubscribe after their reminders run out.

What does email + SMS cost on your own server?

Email costs very little per message on your own infrastructure; SMS is what drives the bill. Here is an illustrative month for 10,000 contacts who each get 4 emails, with 2,000 or 10,000 single-segment SMS. This is a calculation, not a benchmark.

Item US recipients (Twilio) Polish recipients (SMSAPI, prepaid)
Server (DigitalOcean 4 GiB) $24 $24
40,000 emails via Amazon SES $4 $4
2,000 SMS $23.60–$26.60 340 PLN net (about $87.57) at 0.17 PLN
10,000 SMS $118–$133 1,600 PLN net (about $412.08) at 0.16 PLN
Recurring registration fees 10DLC campaign: $1.50–$10/month none listed
NetSendo licence SILVER free, or GOLD $97/month SILVER free, or GOLD $97/month
Total with 2,000 SMS on SILVER about $53–$65 about $116 (about 449 PLN)

Prices checked 2026-10-16 (AWS, DigitalOcean) and 2026-10-17 (Twilio, SMSAPI). Twilio range = $0.0083 base plus a $0.0035–$0.0050 carrier fee per segment. SMSAPI's rate depends on the size of your last top-up; 0.17 PLN applies to top-ups of 49–499.99 PLN and 0.16 PLN to 500–1,999.99 PLN. Excludes one-time 10DLC fees, phone number rental, VAT and your time.

For email-only costs at larger lists, see what email marketing costs at 10k, 50k and 100k contacts; for licence details see the pricing page.

How do you keep SMS deliverability high?

SMS deliverability depends on carriers trusting your sender. Registered senders, clean consent and quick opt-out handling matter more than any wording trick. Keep these habits:

  • Register and keep a stable sender. In the US, finish 10DLC brand and campaign registration before sending; in Poland, use a verified SMSAPI sender name. Don't rotate numbers to get around filtering.
  • Honour opt-out keywords everywhere. Tell people how to stop (for example "Reply STOP to opt out" on a long code, or an unsubscribe link with an alphanumeric sender), and sync every opt-out back into NetSendo.
  • Cap frequency. NetSendo automations can limit executions per subscriber per hour, day, week, month or ever, and each SMS provider can have a daily limit. Use both.
  • Send at sensible hours. Use a "wait until" business hours step in funnels and the per-list sending schedule for SMS broadcasts.
  • Watch failures. Subscribe to the sms.failed webhook and remove numbers that keep failing or have no phone (NO_PHONE).
  • Keep it short and identifiable. Name your brand in the message, stay within one segment where possible, and link only to your own domain.

Email deliverability is a separate job with its own rules (SPF, DKIM, DMARC, Gmail and Outlook bulk-sender requirements). It is covered in our deliverability guide for self-hosted senders.

Bottom line

Email + SMS on your own server works well when SMS stays the exception: a last cart reminder, an appointment reminder, a final win-back nudge. You pay each SMS provider directly (about one cent per US segment, about 0.11–0.17 PLN per SMS in Poland on 2026-10-17), and in return you handle consent, opt-out sync and sender registration yourself. To try it, install NetSendo on the free SILVER licence, add a provider under Settings > SMS Providers using the configuration docs, check the integrations you need, and send your first flow to a test list. Still choosing a platform? Start with the best self-hosted email marketing software or the self-hosted Mailchimp alternative, and read Is NetSendo open source? to understand the licence.

Frequently asked questions

Can I run email and SMS marketing on my own server?
Yes. A self-hosted platform such as NetSendo runs in Docker on your server, sends email through Amazon SES, Mailgun, SendGrid or any SMTP server, and sends SMS through an SMS provider account you open yourself. Email and SMS steps can sit in the same funnel.
Which SMS providers does NetSendo support?
Twilio, Vonage, MessageBird (now Bird), Plivo and SMSAPI. You add them under Settings > SMS Providers and pay the provider directly, without a NetSendo markup.
How much does one marketing SMS cost?
It depends on the country. On 2026-10-17 Twilio charged $0.0083 per US segment plus a carrier fee of $0.0035–$0.0050, and $0.0457 per segment to Poland. SMSAPI charged 0.11–0.17 PLN net per SMS in Poland on prepaid.
Do I need 10DLC registration to send SMS in the US?
Yes, if you send application-to-person messages from a 10-digit long code to US numbers. Twilio states that anyone doing so must register for A2P 10DLC, which involves a brand registration, a campaign vetting fee and a monthly campaign fee.
Do I need separate consent for SMS marketing?
In practice, yes. In the US the FCC says commercial texts require written consent. In the EU the ePrivacy Directive requires prior consent for direct marketing by electronic mail, which includes SMS. In Poland Art. 398 of the Electronic Communications Law requires prior consent. This is general information, not legal advice.
Does NetSendo process STOP replies automatically?
Inbound STOP handling is not described in NetSendo's documentation. Twilio blocks numbers that reply STOP on its side, but you should also mark the contact as unsubscribed in NetSendo, for example through n8n or the API, and include an unsubscribe link in your SMS.
Is NetSendo free?
The SILVER licence is free, with unlimited contacts, for use in your own business, and it includes SMS. You still pay for the server, the email sending provider and every SMS. GOLD costs $97 a month.

Try NetSendo on your own server

Self-hosted email & SMS marketing with a free Silver license. Install with Docker Compose in minutes.

Sources

  1. Twilio SMS pricing, United States · checked 2026-10-17
  2. Twilio SMS pricing, Poland · checked 2026-10-17
  3. Twilio: A2P 10DLC brand registration (fees) · checked 2026-10-17
  4. Twilio: A2P 10DLC (campaign vetting and monthly fees) · checked 2026-10-17
  5. Twilio: Advanced Opt-Out (default STOP keywords, error 21610) · checked 2026-10-17
  6. Vonage SMS pricing (country selector, Poland) · checked 2026-10-17
  7. Bird pricing (formerly MessageBird) · checked 2026-10-17
  8. Techzine: MessageBird rebrands as Bird (2024-02-02) · checked 2026-10-17
  9. Plivo SMS pricing, United States · checked 2026-10-17
  10. Plivo SMS pricing, Poland · checked 2026-10-17
  11. SMSAPI price list (cennik) · checked 2026-10-17
  12. SMSAPI: SMS branding (sender name up to 11 characters, verification, no replies) · checked 2026-10-17
  13. FCC: Stop unwanted robocalls and texts (TCPA consumer guide) · checked 2026-10-17
  14. CTIA Messaging Principles and Best Practices (May 2023) · checked 2026-10-17
  15. Directive 2002/58/EC (ePrivacy Directive), Articles 2(h) and 13 · checked 2026-10-17
  16. Polish Electronic Communications Law (Prawo komunikacji elektronicznej), Dz.U. 2024 poz. 1221, Art. 398 and 400 · checked 2026-10-17
  17. NetSendo README (features, licence plans) · checked 2026-10-17
  18. NetSendo API documentation (SMS endpoints, SMS lists, placeholders) · checked 2026-10-17
  19. NetSendo SMS configuration (GSM-7 and Unicode lengths) · checked 2026-10-17
  20. NetSendo changelog (SMS and funnel fixes after 2.1.3) · checked 2026-10-17
  21. NetSendo automation catalogue (triggers and actions) · checked 2026-10-17
  22. NetSendo funnel templates (Re-engagement) · checked 2026-10-17
  23. NetSendo Calendly integration docs · checked 2026-10-17
  24. NetSendo for WooCommerce plugin readme · checked 2026-10-17
  25. Amazon SES pricing · checked 2026-10-16
  26. DigitalOcean droplet pricing · checked 2026-10-16