Opas · 13 minuutin lukuaika
WordPress-lomakkeesta tekstiviesti puhelimeesi
Vaiheittainen opas Contact Form 7:n ja WPFormsin yhdistämiseen Twilion kautta, mukaan lukien Traficomin 2026 lähettäjätunnussäännöt, GDPR-vaatimukset ja kuukausikustannusten vertailu.

Benjam Indrenius
Julkaistu 2026-04-27 · Päivitetty 2026-04-28
Lyhyesti
WordPress-lomakkeen tekstiviesti-ilmoitus onnistuu yhdistämällä Contact Form 7 tai WPForms Twilion REST-rajapintaan PHP-koukkujen avulla. Se vie muutaman tunnin, vaatii Twilio-tilin, suomalaisen lähettäjätunnuksen hyväksynnän Traficomin uusien 2026-sääntöjen mukaisesti, ja kustantaa enimmäkseen noin 5-15 euroa kuukaudessa pienellä liidivolyymilla. Opas näyttää jokaisen vaiheen koodeineen.
DIY-asennuspolku
WordPress + Twilio vaatii enemmän kuin yhden lisäosan
Step 1
1Tili ja lähettäjä
Luo tili, valitse lähettäjätapa ja tarkista Suomen lähetyssäännöt.
Step 2
2Koukku tai lisäosa
Yhdistä lomakkeen submit-tapahtuma Twilion rajapintaan.
Step 3
3Testaa jatkuvasti
Seuraa virheitä, päivityksiä, hintoja ja viestien perillemenoa.
Miksi sähköposti-ilmoitus ei riitä
Useimmat WordPress-lomakkeet lähettävät oletuksena sähköpostivaroituksen, kun joku ottaa yhteyttä. Ongelma on siinä, mitä sähköpostille tapahtuu sen jälkeen.
42 h
Mediaaniaika liidiin vastaamiseen. Lähes puolet yrityksistä ei vastaa koskaan. RevenueHero, 2025.
21x
Paremmat mahdollisuudet tavoittaa liidi alle 5 minuutissa kuin 30 minuutin kuluttua. MIT / InsideSales -tutkimus.
98 %
Tekstiviestien avausprosentti. Sähköpostin avausprosentti on tyypillisesti 20-40 %. Viesti luetaan puhelimesta lähes aina.
Kun liidi saapuu verkkosivullesi illalla tai viikonloppuna, sähköposti odottaa silmien eteen seuraavana aamuna, ehkä myöhemminkin. Tekstiviesti keskeyttää ja vie taskuusi heti. Se on juuri se ero, joka ratkaisee, kuka saa kaupan.
Mitä tarvitset ennen aloittamista
Ennen kuin kirjoitat yhtään koodia, varmista, että sinulla on nämä kolme asiaa kunnossa.
1. Twilio-tili
Rekisteröidy osoitteessa twilio.com. Testikäyttöön riittää ilmainen kokeilutili, mutta tuotantokäytössä tarvitset maksullisen tilin. Kokeilutilillä viestit menevät vain vahvistettuihin testiinumeroihin.
2. WordPress-sivusto + Contact Form 7 tai WPForms
Tämä opas käyttää esimerkkinä Contact Form 7:ää, mutta WPForms toimii samalla periaatteella. Varmista, että lomake lähettää sähköpostivaroituksen normaalisti ennen kuin alat muokata koodia.
3. Pääsy functions.php-tiedostoon ja wp-config.php-tiedostoon
Tarvitset joko FTP-yhteyden, hostingin tiedostonhallintapaneelin tai lapsiteen (child theme), jonka functions.php-tiedostoon voit lisätä koodia ilman, että se ylikirjoittuu päivityksissä.
Vaihe 1: Twilio-tilin luominen ja suomalaisen numeron hankinta
Luo tili ja etsi tunnistetiedot
Rekisteröinnin jälkeen löydät Twilio Console -hallintapaneelista kaksi arvoa, joita tarvitaan koodissa: Account SID ja Auth Token. Nämä toimivat käyttäjätunnuksena ja salasanana Twilion rajapinnalle.
Suomalainen numero vai aakkosnumeerinen lähettäjätunnus?
Sinulla on kaksi päävaihtoehtoa:
| Vaihtoehto | Hinta | Huomioitavaa |
|---|---|---|
| Suomalainen mobiilinumero | 5 $/kk + 0,0861 $/SMS | Vastaanottajalle näkyy suomalainen numero. Voidaan vastata takaisin. |
| Aakkosnumeerinen lähettäjätunnus (esim. "YritysNimi") | Ilmainen + 0,0861 $/SMS | Ei voi vastata. Vaatii erillisen rekisteröinnin Traficomiin. |
| Suojattu aakkosnumeerinen lähettäjätunnus | 375 $ kertamaksu + 70 $/kk + 0,0861 $/SMS | Yksinoikeus tunnukseen. Kallis pienyritykselle. |
Tärkeää: Traficomin 2026-säännöt
Traficomin asetus (28 L/2025 M) tuli voimaan 4. toukokuuta 2026. Se edellyttää, että kaikki lähettäjätunnukset, sekä puhelinnumerot että aakkosnumeeriset tunnukset, hyväksytetään etukäteen ennen kuin viestejä voidaan lähettää suomalaisiin numeroihin. Hyväksymättömien lähettäjätunnusten viestit voidaan estää tai näyttää vastaanottajalle tunnuksilla "Tuntematon" tai "Roskaposti". Hyväksyntä haetaan käyttämäsi SMS-operaattorin, kuten Twilion, kautta. Lähettäjätunnuksen tulee vastata yrityksesi nimeä Yritys- ja yhteisötietojärjestelmässä (YTJ) ja olla enintään 11 merkkiä.
Vaihe 2: Contact Form 7 + Twilio-integraatio
Palvelinpuolen koukku wpcf7_mail_sent laukeaa Contact Form 7:ssä heti, kun lomake on lähettänyt sähköpostivaroituksen onnistuneesti. Se on luotettavin paikka laukaista tekstiviestilähetys.
Vaihe 2a: Tallenna Twilio-tunnisteet wp-config.php-tiedostoon
Avaa wp-config.php (juuri WordPressin juurihakemistossa) ja lisää rivit ennen riviä /* That's all, stop editing! */:
define('TWILIO_ACCOUNT_SID', 'ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
define('TWILIO_AUTH_TOKEN', 'your_auth_token_here');
define('TWILIO_FROM_NUMBER', '+35840xxxxxxx'); // tai alphanumeerinen tunnus
define('TWILIO_ALERT_TO', '+358xxxxxxxxx'); // oma puhelinnumerosiÄlä koskaan tallenna tunnistetietoja teemakoodiin tai versiohallintaan.
Vaihe 2b: Lisää funktio functions.php-tiedostoon
Avaa lapsiteen functions.php ja lisää seuraava koodi. Vaihda $target_form_id omaksi lomake-ID:ksesi (löydät sen Contact Form 7:n lomakkeenhallinnasta URL-osoitteesta: post=123).
<?php
add_action('wpcf7_mail_sent', 'my_cf7_send_twilio_sms', 10, 1);
function my_cf7_send_twilio_sms($contact_form) {
$target_form_id = 123; // Vaihda omaksi CF7-lomake-ID:ksi
if ((int) $contact_form->id() !== $target_form_id) {
return;
}
if (!class_exists('WPCF7_Submission')) {
return;
}
$submission = WPCF7_Submission::get_instance();
if (!$submission) {
return;
}
$data = $submission->get_posted_data();
// Puhdistettu lomakedata -- käytä nimiä omasta CF7-lomakkeesta
$name = sanitize_text_field($data['your-name'] ?? '');
$email = sanitize_email($data['your-email'] ?? '');
$phone = preg_replace('/[^0-9+]/', '', (string) ($data['your-phone'] ?? ''));
$message = sanitize_textarea_field($data['your-message'] ?? '');
// Pidä SMS-viesti minimaalisena: nimi, numero, lyhyt kuvaus
$sms_body = sprintf(
"Uusi liidi: %s | Puh: %s | Email: %s | Viesti: %s",
$name ?: '-',
$phone ?: '-',
$email ?: '-',
mb_strimwidth($message, 0, 80, '…')
);
$sid = defined('TWILIO_ACCOUNT_SID') ? TWILIO_ACCOUNT_SID : '';
$auth = defined('TWILIO_AUTH_TOKEN') ? TWILIO_AUTH_TOKEN : '';
$from = defined('TWILIO_FROM_NUMBER') ? TWILIO_FROM_NUMBER : '';
$to = defined('TWILIO_ALERT_TO') ? TWILIO_ALERT_TO : '';
if (!$sid || !$auth || !$from || !$to) {
error_log('Twilio SMS: puuttuvat asetukset.');
return;
}
$endpoint = "https://api.twilio.com/2010-04-01/Accounts/{$sid}/Messages.json";
$response = wp_remote_post($endpoint, [
'timeout' => 20,
'headers' => [
'Authorization' => 'Basic ' . base64_encode($sid . ':' . $auth),
],
'body' => [
'To' => $to,
'From' => $from,
'Body' => $sms_body,
],
]);
if (is_wp_error($response)) {
error_log('Twilio SMS -virhe: ' . $response->get_error_message());
return;
}
$status_code = wp_remote_retrieve_response_code($response);
if ($status_code < 200 || $status_code >= 300) {
error_log('Twilio SMS -virhe ' . $status_code . ': ' . wp_remote_retrieve_body($response));
}
}WPForms-käyttäjille
WPForms-käyttäjät voivat korvata add_action-rivin seuraavalla. Koukku wpforms_process_complete laukeaa lomakkeen käsittelyn lopussa, kun merkintä on tallennettu ja sähköpostivaroitukset lähetetty.
add_action('wpforms_process_complete', 'my_wpforms_send_twilio_sms', 10, 4);
function my_wpforms_send_twilio_sms($fields, $entry, $form_data, $entry_id) {
$target_form_id = 456; // Vaihda omaksi WPForms-lomake-ID:ksi
if ((int) $form_data['id'] !== $target_form_id) {
return;
}
// Hae kentät nimellä tai ID:llä
$name = sanitize_text_field($fields[1]['value'] ?? ''); // Nimi-kenttä
$phone = sanitize_text_field($fields[2]['value'] ?? ''); // Puhelin-kenttä
$email = sanitize_email($fields[3]['value'] ?? ''); // Sähköposti-kenttä
// Jatka samalla Twilio wp_remote_post -logiikalla kuin CF7-esimerkissä...
}Vaihe 3: Testaus ja virheiden korjaus
Tekstiviesti ei saavu heti ensimmäisellä kerralla. Tässä yleisimmät syyt ja ratkaisut.
Ongelma: Tekstiviesti ei tule ollenkaan
Tarkista ensin WordPress-virheloki: wp-content/debug.log. Ota virheenkorjaus käyttöön wp-config.php-tiedostossa: define('WP_DEBUG', true); define('WP_DEBUG_LOG', true);. Tarkista myös Twilio Console, onko viesti yritetty lähettää (Error Logs -osio).
Ongelma: Twilio palauttaa HTTP 401
Account SID tai Auth Token on väärin. Kopioi ne uudelleen Twilio Console -hallintapaneelista. Muista, että Auth Token on salainen eikä näy kokonaan konsolissa oletuksena, sinun täytyy klikata "paljasta".
Ongelma: Twilio palauttaa virhe 21608 tai "unverified number"
Käytät Twilion kokeilutiliä, joka voi lähettää viestejä vain etukäteen vahvistettuihin numeroihin. Lisää vastaanottajan numero Twilio Console -hallintapaneelin "Verified Caller IDs" -osioon tai päivitä maksulliselle tilille.
Ongelma: Koukku ei laukea lainkaan
Tarkista lomake-ID ($target_form_id). Se löytyy URL-osoitteesta CF7-lomakkeen muokkausnäkymässä: wp-admin/admin.php?page=wpcf7&action=edit&post=123. Numero 123 on lomake-ID.
Vaihe 4: GDPR-huomiot
Lomakkeen datan välittäminen Twiliolle on henkilötietojen käsittelyä. Tämä ei tarkoita, että tarvitset erillisen suostumuksen jokaiselta yhteydenottajalta, mutta muutama asia on kunnossa oltava.
Tietojenkäsittelysopimus Twilion kanssa
Tietosuojaseloste
Mainitse tietosuojaselosteessa, että yhteydenottolomakkeesta siirretään tietoja Twiliolle tekstiviestivaroitusta varten. Ilmoita rekisteröidylle käsittelyn tarkoitus, säilytysaika ja oikeudet. Twilio on yhdysvaltalainen yritys, joten ETA-alueen ulkopuolinen tiedonsiirto on mainittava, ja siirtoperuste (SCCs) on dokumentoitava.
Tietojen minimointi tekstiviestissä
Tietosuojavaltuutettu antaa esimerkkinä pienen riskin tapauksesta tilanteen, jossa ajanvaraustekstiviesti meni väärään numeroon mutta ei sisältänyt tunnistettavia henkilötietoja. Sama periaate pätee tähän: jos tekstiviesti sisältää vain nimen ja puhelinnumeron, ei arkaluonteisia tietoja, vahinkovaikutus virhetilanteessa on rajallinen. Älä sisällytä tekstiviestiin enemmän tietoa kuin tarvitset toimiaksesi.
Tarvitaanko suostumus?
Sisäiselle henkilökunnalle lähetettävä operatiivinen varoitus ei yleensä vaadi erillistä suostumusta lomakkeen lähettäjältä. Riittää, että tietojenkäsittelyllä on laillinen peruste (esim. oikeutettu etu tai sopimuksen valmistelu) ja lomake sisältää linkin tietosuojaselosteeseen. Jos sen sijaan lähettäisit markkinointiviestin suoraan lomakkeen täyttäjälle, Suomen sähköisten viestintäpalvelujen laki edellyttäisi ennakkoon annettua suostumusta.
Mitä tämä maksaa kuukaudessa
Twilion hinnat vaihtelevat sen mukaan, mitä lähettäjävaihtoehtoa käytät. Kaikki alla olevat hinnat ovat Twilion julkisia listahinnatoja muutettuna euroiksi EKP:n 24.4.2026 viitekurssin (1 EUR = 1,1712 USD) mukaan. Hintoihin voivat lisätä operaattorikohtaiset siirtomaksut, joita Twilio ei erittele julkisesti Elisalle, DNA:lle tai Telialle.
| Skenaario | 30 SMS/kk | 100 SMS/kk | 300 SMS/kk |
|---|---|---|---|
| Suomalainen Twilio-numero | ~6,47 € | ~11,62 € | ~26,32 € |
| Ilmainen aakkosnumeerinen tunnus | ~2,21 € | ~7,35 € | ~22,04 € |
| Suojattu aakkosnumeerinen tunnus | ~62,0 € + 320 € kertaluonteinen | ~67,1 € | ~81,8 € |
Pienyritykselle tyypillinen kokonaiskustannus
Yritys, joka saa 20-50 yhteydenottoa kuukaudessa, maksaa Twiliolle 5-12 euroa kuukaudessa. Se on edullinen. Lisäksi tulee kuitenkin noin 2-4 tuntia asennusaikaa, mahdolliset korjaukset päivitysten jälkeen, lähettäjätunnuksen rekisteröintivaiva ja se, että joku pitää koodin toimintakunnossa.
Vaihtoehto: localbot tekee kaiken tämän 5 minuutissa
Tämä opas toimii. Jos haluat rakentaa itse, olet nyt valmiina. Jos taas haluat ohittaa Twilio-tilin, PHP-koodin, lähettäjätunnuksen rekisteröinnin ja GDPR-sopimukset, on myös helpompi reitti.
localbot on taustatasoinen ohjelma, joka korvaa verkkosivusi yhteydenottolomakkeen älykkäällä versiolla. Se lähettää tekstiviestin puhelimeesi heti, kun joku täyttää lomakkeen. Ei Twilio-tiliä, ei koodia, ei lisäosia.
DIY Twilio-reitti
- Twilio-tilin luominen (~30 min)
- Lähettäjätunnuksen rekisteröinti (~1-2 päivää)
- PHP-koodin kirjoittaminen (~2-4 h)
- Testaus ja virheenkorjaus (~1-2 h)
- Tietosuojaselosteen päivittäminen
- Tietojenkäsittelysopimus Twilion kanssa
- Ylläpito päivitysten jälkeen
localbot-reitti
- Kopioi yksi skriptitagi WordPress-sivullesi
- Syötä puhelinnumerosi
- Valmis
Toimii myös Squarespacessa, Wixissä, Lovablessa ja missä tahansa muussa sivustonrakentajassa, jonne voit lisätä skriptin.
Usein kysytyt kysymykset
Tarvitseeko Twilion käyttöön Traficomin lupa?
Kyllä. Traficomin asetus (28 L/2025 M) tuli voimaan 4. toukokuuta 2026, ja se edellyttää, että kaikki lähettäjätunnukset hyväksytetään etukäteen ennen kuin viestejä voidaan lähettää suomalaisiin numeroihin. Hyväksyntä haetaan SMS-operaattorin kautta. Luvattomien lähettäjätunnusten viestit voidaan estää tai muuttaa tunnuksiksi "Tuntematon" tai "Roskaposti".
Onko Twilio GDPR-yhteensopiva Suomessa?
Twilio tarjoaa tietojenkäsittelysopimuksen (Data Protection Addendum) ja siirtomekanismeja kuten mallisopimuslausekkeet (SCC). Koska Twilio käsittelee henkilötietoja toimeksiantajan puolesta, tietojenkäsittelysopimus on pakollinen GDPR:n nojalla. Twilio on yhdysvaltalainen yritys, joten ETA-alueen ulkopuolinen tiedonsiirto edellyttää asianmukaista siirtoperustetta.
Kumpi on parempi Contact Form 7 vai WPForms Twilio-integraatiolle?
Molemmat toimivat, mutta eri tavoin. Contact Form 7 tarjoaa PHP-koukkuja suoraan palvelinpuolella (wpcf7_mail_sent), mikä sopii hyvin mukautettuun koodiin. WPForms tukee webhookeja Elite-tilauksessa tai vaihtoehtoisesti wpforms_process_complete-koukkua omassa PHP-koodissa. Kummassakaan tapauksessa lomakkeen tekstiviestivaroitukset eivät ole oletusarvoisesti mukana, vaan edellyttävät joko omaa koodia tai lisäosaa.
Paljonko Twilio maksaa kuukaudessa yhdelle yritykselle?
Pienyritykselle, jolla on 30-100 lomakelähetystä kuukaudessa, kustannus on noin 4-13 euroa kuukaudessa (suomalainen Twilio-numero ~4,27 €/kk plus ~0,074 €/SMS). Tähän lisätään mahdolliset operaattorikohtaiset maksut, joita Twilio ei ilmoita julkisesti. Kustannukset pysyvät pieninä, mutta lähettäjätunnuksen rekisteröinti, koodin ylläpito ja ongelmanselvittely vievät aikaa.
Tuleeko tekstiviesti heti lomakkeen lähetyksen jälkeen?
Yleensä kyllä. wpcf7_mail_sent-koukku laukeaa palvelimella heti, kun Contact Form 7 on lähettänyt vahvistussähköpostin. Twilio toimittaa viestin tyypillisesti muutamassa sekunnissa. Viivettä voi syntyä, jos hosting-palvelimen WordPress-suorituskyky on hidas, tai poikkeustilanteissa Twilion verkosta.
Voinko käyttää pelkästään sähköpostia tekstiviestin sijaan?
Teknisesti kyllä, mutta se on juuri se ongelma, jonka tämä opas ratkaisee. Tutkimusten mukaan mediaaniyritys vastaa liideihin noin 42 tunnin kuluttua. Sähköposti jää helposti piiloon, etenkin kiireisenä päivänä. Tekstiviesti luo fyysisen keskeytyksen ja saapuu suoraan taskuusi. Yritykset, jotka vastaavat alle 5 minuutissa, voittavat kilpailijansa selvästi.