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

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

1

Tili ja lähettäjä

Luo tili, valitse lähettäjätapa ja tarkista Suomen lähetyssäännöt.

Step 2

2

Koukku tai lisäosa

Yhdistä lomakkeen submit-tapahtuma Twilion rajapintaan.

Step 3

3

Testaa 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.

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:

VaihtoehtoHintaHuomioitavaa
Suomalainen mobiilinumero5 $/kk + 0,0861 $/SMSVastaanottajalle näkyy suomalainen numero. Voidaan vastata takaisin.
Aakkosnumeerinen lähettäjätunnus (esim. "YritysNimi")Ilmainen + 0,0861 $/SMSEi voi vastata. Vaatii erillisen rekisteröinnin Traficomiin.
Suojattu aakkosnumeerinen lähettäjätunnus375 $ kertamaksu + 70 $/kk + 0,0861 $/SMSYksinoikeus 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.

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.

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.

Skenaario30 SMS/kk100 SMS/kk300 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.

localbot contact

Haluatko tekstiviesti-ilmoitukset ilman koodia?

localbot liittää verkkosivusi lomakkeen tekstiviesti-ilmoituksiin yhdellä skriptitagilla. Toimii WordPressissä, Squarespacessa, Wixissä, Lovablessa ja missä tahansa sivustonrakentajassa. Et tarvitse Twilio-tiliä, PHP-koodia etkä lisäosia.

Get started

99 €/kk. Aloitat alle 5 minuutissa.