OverviewÜlevaade
Smaily Connect links your WooCommerce store to Smaily email marketing and, optionally, to Smaily Campaign Intelligence for personalised product recommendations. Smaily Connect ühendab su WooCommerce'i poe Smaily e‑turundusega ja soovi korral Smaily Campaign Intelligence'iga personaalsete tootesoovituste jaoks.
What is Smaily Connect?Mis on Smaily Connect?
Smaily Connect is a WordPress plugin that links your WooCommerce store to your own Smaily email‑marketing account and, optionally, to Smaily Campaign Intelligence — Smaily's recommendation engine for personalised products and purchase‑based automations.
It does three things:
- Syncs contacts — customers who have opted in flow into your Smaily contact list.
- Triggers automations — store events (welcome, first order, abandoned cart) start your Smaily workflows.
- Powers recommendations — when you connect Campaign Intelligence, your catalog, customers and orders seed personalised recommendations and engine‑run automations.
Your data stays yours. Contacts live in your Smaily account; the plugin only connects the two systems.
Smaily Connect on WordPressi plugin, mis ühendab su WooCommerce'i poe sinu enda Smaily e‑turunduse kontoga ja soovi korral Smaily Campaign Intelligence'iga — Smaily soovitusmootoriga, mis pakub personaalseid tooteid ja ostupõhiseid automaatikaid.
See teeb kolme asja:
- Sünkroonib kontakte — nõusoleku andnud kliendid liiguvad sinu Smaily kontaktinimekirja.
- Käivitab automaatikaid — poe sündmused (tervitus, esimene tellimus, pooleli jäänud ostukorv) käivitavad su Smaily töövood.
- Toidab soovitusi — kui ühendad Campaign Intelligence'i, siis su tootekataloog, kliendid ja tellimused annavad alusandmed personaalsetele soovitustele ja mootori‑automaatikatele.
Su andmed jäävad sinu omaks. Kontaktid elavad sinu Smaily kontos; plugin ainult ühendab kaks süsteemi.
How the pieces fit togetherKuidas osad kokku sobivad
There are three systems:
- WooCommerce — your store: customers, orders, products and storefront activity.
- Smaily — your email‑marketing account, where contacts and automation workflows live (
yourcompany.sendsmaily.net). - Campaign Intelligence — Smaily's recommendation engine. Optional, connected with a one‑time setup link.
Smaily Connect is the bridge. WooCommerce events reach the plugin; the plugin forwards contacts and triggers to Smaily, and — if connected — catalog, customer and order data to Campaign Intelligence.
Background work runs on Action Scheduler (bundled with WooCommerce), not WP‑Cron. Every record carries a unique event id, so a retry never creates a duplicate. You can watch it all in the Event Log.
Süsteeme on kolm:
- WooCommerce — sinu pood: kliendid, tellimused, tooted ja poe‑tegevus.
- Smaily — sinu e‑turunduse konto, kus elavad kontaktid ja automaatika‑töövood (
sinufirma.sendsmaily.net). - Campaign Intelligence — Smaily soovitusmootor. Valikuline, ühendatakse ühekordse seadistuslingiga.
Smaily Connect on sild. WooCommerce'i sündmused jõuavad pluginani; plugin edastab kontaktid ja käivitajad Smailysse ning — kui ühendatud — tootekataloogi, klientide ja tellimuste andmed Campaign Intelligence'isse.
Taustatöö käib Action Scheduleri peal (tuleb WooCommerce'iga kaasa), mitte WP‑Croni peal. Iga kirje kannab unikaalset sündmuse‑id'd, seega kordus ei tekita kunagi duplikaati. Kõike saab jälgida Event Logist.
Before you startEnne alustamist
You need:
- A WooCommerce store on WordPress, served over HTTPS (the Smaily and recommendation APIs are HTTPS‑only).
- A Smaily account with API access. You create API users in Smaily under Settings → API — you'll need the subdomain, API username and API password.
- (Optional) A Campaign Intelligence setup link — a one‑time link of the form
https://intelligence.smaily.com/setup/…, provided by Smaily if you use the recommendation add‑on.
| Component | Minimum | Tested up to |
|---|---|---|
| WordPress | 6.6 | 7.1 |
| WooCommerce | 6.9 | 10.7 |
| PHP | 8.0 | 8.3 |
| HTTPS | Required | — |
Everything is set up through a short wizard, described next.
Sul on vaja:
- WooCommerce'i poodi WordPressil, HTTPS kaudu (Smaily ja soovitus‑API‑d on ainult HTTPS).
- Smaily kontot API‑ligipääsuga. API‑kasutajad luuakse Smailys jaotises Settings → API — vaja läheb alamdomeeni, API kasutajanime ja API parooli.
- (Valikuline) Campaign Intelligence seadistuslinki — ühekordset linki kujul
https://intelligence.smaily.com/setup/…, mille Smaily annab, kui kasutad soovitus‑lisa.
| Komponent | Miinimum | Testitud kuni |
|---|---|---|
| WordPress | 6.6 | 7.1 |
| WooCommerce | 6.9 | 10.7 |
| PHP | 8.0 | 8.3 |
| HTTPS | Nõutud | — |
Kõik seadistatakse lühikese viisardi kaudu, mida kirjeldab järgmine osa.
Getting startedAlustamine
Install the plugin, then work through a short 6‑step wizard. No code or command line is required. Paigalda plugin ja läbi lühike 6‑sammuline viisard. Koodi ega käsurida pole vaja.
Install the pluginPlugina paigaldus
Smaily Connect is in the WordPress plugin directory, so you install it from WordPress itself — no file to download.
- In WordPress admin, go to Plugins → Add New Plugin and search for Smaily Connect.
- Click Install Now, then Activate.
- A new Smaily Connect item appears in the left admin sidebar. Click it to open the Initial setup.
Later versions arrive as ordinary WordPress plugin updates, under Dashboard → Updates and on the Plugins page.
Smaily Connect installs alongside the legacy Smaily plugin and takes over once you finish the initial setup — your existing contact sync keeps working until then. New checkouts and registrations keep syncing throughout; the once-a-day catch-up sync waits and resumes as soon as you finish the setup. Nothing is lost, and you can roll back — if you do, the older plugin asks for your Smaily API password again.
On a staging site, or anywhere that installs plugins from a file, the same package is attached to every release as smaily-connect.zip — download it from the Smaily Connect releases page, go to Plugins → Add New Plugin → Upload Plugin, choose the ZIP and click Install Now, then Activate.
Smaily Connect on WordPressi pluginakataloogis, seega paigaldad selle WordPressist endast — faili pole vaja alla laadida.
- Mine WordPressi halduses Plugins → Add New Plugin ja otsi Smaily Connect.
- Klõpsa Install Now ja siis Activate.
- Vasakusse haldusribasse tekib uus Smaily Connect. Klõpsa sellel, et avada Algseadistus.
Edaspidised versioonid jõuavad kohale tavalise WordPressi plugina‑uuendusena — vaates Dashboard → Updates ja Plugins lehel.
Smaily Connect paigaldub vana Smaily plugina kõrvale ja võtab üle alles siis, kui viisardi lõpetad — su senine kontakti‑sünk töötab kuni selle hetkeni edasi. Uued ostud ja registreerimised sünkivad kogu selle aja; kord ööpäevas käiv järelsünk ootab ära ja käivitub kohe, kui seadistuse lõpetad. Midagi ei lähe kaotsi ja saad tagasi pöörduda — kui seda teed, küsib vanem plugin sinu Smaily API parooli uuesti.
Staging‑saidil või kõikjal, kus pluginad paigaldatakse failist, on sama pakett lisatud igale väljalaskele nimega smaily-connect.zip — lae see alla Smaily Connecti väljalaskelehelt, mine Plugins → Add New Plugin → Upload Plugin, vali ZIP ja klõpsa Install Now ning siis Activate.
Finding your way aroundMenüü
Until you finish the initial setup, clicking Smaily Connect in the admin sidebar opens the setup wizard, and clicking Settings sends you back to it — so just work through the steps in order. The wizard has 6 steps; steps after Step 1 stay locked until your Smaily connection is verified.
Once you finish the setup, Smaily Connect opens Settings, on the Connection tab. The Event Log tab shows what was sent and what failed. To go through the wizard again, use Smaily Connect → Run setup again; it starts from your saved settings.
Kuni algseadistus on lõpetamata, avab halduse külgribal Smaily Connectile klõpsamine seadistusviisardi ja Seaded (Settings) klõpsamine saadab su sinna tagasi — nii et lihtsalt läbi sammud järjekorras. Viisardil on 6 sammu; sammud pärast 1. sammu on lukus, kuni su Smaily ühendus on kinnitatud.
Kui seadistus on lõpetatud, avab Smaily Connect Seadete (Settings) lehe Ühenduse vahekaardil. Sündmuste logi vahekaart näitab, mis saadeti ja mis ebaõnnestus. Viisardi uuesti läbimiseks vali Smaily Connect → Seadista uuesti; see alustab su salvestatud seadetest.
Step 1 — Connect your Smaily accountSamm 1 — Ühenda Smaily konto
Enter your Smaily API credentials — the plugin verifies them before saving.
- Subdomain — the part before
.sendsmaily.net(e.g.yourcompany). - API username and API password — create these in Smaily under Settings → API.
Press Test connection. On success you'll see Verified and Connection verified. You can change these credentials later under Settings → Connection.
Upgrading from an older Smaily plugin? Your subdomain and API username are already filled in and the password field is empty — the plugin never sends a stored password back to the browser. Leave it empty and press Test connection: it uses the password already saved for that account. Type a password only if you are switching accounts or have rotated it.
Campaign Intelligence (optional) is not connected in this step. You connect it in Step 4, or later under Settings → Campaign Intelligence.
Sisesta oma Smaily API‑andmed — plugin kontrollib need enne salvestamist üle.
- Alamdomeen — osa enne
.sendsmaily.net(ntsinufirma). - API kasutajanimi ja API parool — need luuakse Smailys jaotises Settings → API.
Vajuta Test connection. Õnnestumisel näed Verified ja Connection verified. Neid andmeid saad hiljem muuta jaotises Settings → Connection.
Uuendad vanemalt Smaily pluginalt? Alamdomeen ja API kasutajanimi on juba täidetud ning parooli väli on tühi — plugin ei saada salvestatud parooli kunagi brauserisse tagasi. Jäta see tühjaks ja vajuta Test connection: kasutatakse juba salvestatud parooli. Sisesta parool ainult siis, kui vahetad kontot või oled parooli muutnud.
Campaign Intelligence'i (valikuline) selles sammus ei ühendata. Selle ühendad 4. sammus või hiljem jaotises Settings → Campaign Intelligence.
Step 2 — ContactsSamm 2 — Kontaktid
Choose who is synced to Smaily and which fields ride along, then bring your existing customers over.
- Keep Sync contacts to Smaily on, and pick a consent preset (see Contacts settings). The default sends only customers who opted in.
- Email and language are always synced; tick any additional fields you want (name, phone, and so on).
- Optionally show a newsletter opt‑in checkbox during registration or checkout.
- Under Initial contact import, press Start import to send your current customers to Smaily. It runs in the background — you can leave the page.
Vali, kes Smailysse sünkroonitakse ja millised väljad kaasa lähevad, seejärel too olemasolevad kliendid üle.
- Hoia Sync contacts to Smaily sees ja vali nõusoleku‑eelseade (vt Kontaktide seaded). Vaikeväärtus saadab ainult nõusoleku andnud kliendid.
- E‑post ja keel sünkroonitakse alati; märgi ära soovitud lisaväljad (nimi, telefon jne).
- Soovi korral näita registreerimisel või kassas uudiskirja nõusoleku‑märkeruutu.
- Jaotises Initial contact import vajuta Start import, et saata praegused kliendid Smailysse. See käib taustal — võid lehelt lahkuda.
Step 3 — AutomationsSamm 3 — Automaatikad
Map store events to your Smaily automation workflows. Turn on the ones you want and pick the Smaily workflow each should trigger:
- Welcome — a shopper subscribes to your marketing emails in your store: the newsletter box at checkout, on the My Account registration form or in My Account → Account details. It is sent only when your contact sync sends that contact to Smaily — not while contact sync is switched off, and not for a contact your contact sync mode leaves out. Creating an account alone doesn't start it, and neither does an opt‑in you add in WordPress admin or an import. A shopper who unsubscribed and subscribes again gets it again; the welcome itself never re‑subscribes someone who unsubscribed. Where your store keeps no consent record of its own (the All customers and Checkout opt‑in only modes, and guests), each ticked checkout starts it. The Smaily newsletter block and forms send their signups straight to Smaily: choose their welcome workflow in the block's or form's own settings.
- First order — a customer's first order.
- Abandoned cart — a cart started but not completed. You set a delay (minutes of inactivity before the cart counts as abandoned). Who gets the reminder depends on your contact sync mode — see Automations.
Your Smaily workflows must exist in Smaily first; the plugin lists them for you to map. If none appear, none were found on your account (or Smaily couldn't be reached) — create them in Smaily, then revisit.
With Campaign Intelligence connected, each email card also shows Edit design: it opens the email's design page in a new browser tab (see Automations). On a first run of the wizard, Campaign Intelligence is connected only in Step 4, so the button appears when you run the setup again and in Settings.
Seo poe sündmused oma Smaily automaatika‑töövoogudega. Lülita sisse need, mida soovid, ja vali Smaily töövoog, mida iga sündmus käivitab:
- Welcome — ostleja liitub su poes turunduskirjadega: uudiskirja märkeruuduga kassas, „Minu konto“ registreerimisvormil või „Minu konto“ → konto andmetes. See saadetakse ainult siis, kui su kontaktide sünkroonimine saadab selle kontakti Smailysse — mitte siis, kui kontaktide sünkroonimine on välja lülitatud, ega kontaktile, keda su sünkroonimisrežiim ei hõlma. Ainult konto loomine seda ei käivita, samuti mitte WordPressi haldusliideses lisatud nõusolek ega import. Ostleja, kes loobus ja liitub uuesti, saab selle uuesti; tervitus ise ei telli kunagi uuesti kedagi, kes on loobunud. Kui su pood ei pea ise nõusolekukirjet (režiimid All customers ja Checkout opt‑in only ning külalised), käivitab selle iga märgitud kassa‑ruut. Smaily uudiskirja plokk ja vormid saadavad liitujad otse Smailysse: nende tervituse töövoo vali ploki või vormi enda seadetes.
- First order — kliendi esimene tellimus.
- Abandoned cart — ostukorv alustatud, aga lõpetamata. Sead viivituse (tegevusetuse minutid, enne kui korv loetakse hüljatuks). Kes meeldetuletuse saab, sõltub su kontaktide sünkroonimise režiimist — vt Automaatikad.
Su Smaily töövood peavad Smailys enne olemas olema; plugin loetleb need sidumiseks. Kui ühtegi ei kuva, ei leitud su kontolt ühtegi (või Smailyni ei jõutud) — loo need Smailys ja tule tagasi.
Kui Campaign Intelligence on ühendatud, on igal e‑kirja kaardil ka nupp Edit design („Muuda kujundust“): see avab kirja kujunduse lehe uuel brauseri vahekaardil (vt Automaatikad). Seadistuse esimesel läbimisel ühendatakse Campaign Intelligence alles 4. sammus, nii et nupp ilmub, kui käivitad seadistuse uuesti, ja seadetes.
Step 4 — Campaign IntelligenceSamm 4 — Campaign Intelligence
(Optional) This is the step where you connect Campaign Intelligence. Under Connect Smaily Campaign Intelligence, paste the one‑time setup link from Smaily (https://intelligence.smaily.com/setup/…) into Setup URL and press Connect. You'll see ✓ Connected as followed by your shop's name. If you don't use Campaign Intelligence yet, press Continue → to skip this step — you can connect it later under Settings → Campaign Intelligence.
Once connected, this step seeds the engine and turns on the optional signals.
Syncing is automatic. Once connected, your products, customers and orders sync to the engine on their own — there's nothing to switch on per data type.
The catalog import starts when you connect. Connecting sends your whole product catalog to the engine once, in the background; after that only changes are sent (a product save, a stock change, a deletion). Only published products are recommended: a product you set to draft, private or pending review, or move to the trash, is removed from recommendations, and publishing it again brings it back. A Catalog import started notice appears right after you connect. The first products go out about 3 minutes later — press Hold back before then and nothing is sent. You can start the catalog import again any time with Import now next to Products. If a catalog import is already running, connecting again does not start a second one.
A nightly product list keeps the engine's catalog in step. Once a night, at 03:00 store time, the plugin sends the engine the list of every product the catalog sync sends — each product's code and whether it is in stock, nothing else. A product missing from the list (one deleted while a change never reached the engine) stops being recommended, and a wrong stock state is corrected. Drafts, private and pending products are not in the list. Each night's list is one catalog.manifest row in the Event Log; Details shows the list and the engine's answer. Nothing is sent that night while an import runs or product changes still wait to be sent. A store with more than 50,000 products sends no list: the row is marked failed and says why. If the server stops the run before it finishes (for example at its PHP time limit), the row is marked failed and says where the run stopped; the next night sends a new list.
Import existing data: run the Customers and Orders imports (one Import now each) so the engine has history to learn from — they stay your choice and never start on their own. Products is here too, to run the catalog import again. Safe to re‑run — duplicates are impossible by design.
Browse tracking (opt‑in)
The Track browsing behavior toggle is off by default. It powers "similar products" recommendations from what shoppers view, and it is consent‑gated: browse events only fire for visitors who have granted marketing consent.
Turning the toggle on = you allow browse tracking. The shopper's cookie‑consent banner is the second gate — both must say yes before any browse event is sent. Consent is read through the WP Consent API (see Companion plugins). Only the shopper's explicit yes counts: the consent banner must be connected to the WP Consent API and must have stored the shopper's yes for marketing. With no such banner, before the shopper answers, or after a no, nothing is sent — also where the banner treats silence as consent. The line under the toggle tells you which case your store is in — consent comes from your consent banner through the WP Consent API, or browse tracking sends nothing until a consent banner is connected to the WP Consent API, with a link to the plugin. Server‑side data (orders, customers, products) is unaffected — it always syncs.
Shopper profiling opt‑out (automatic)
Every logged‑in shopper gets a Smaily Campaign Intelligence section on their My Account dashboard with a checkbox — "Use my data for personalised recommendations." It is on by default (opt‑out model). Unticking it stops their data being used for profiling, tells the engine to stop profiling them, and is remembered on their Smaily contact too when Smaily already has one. The choice never creates a Smaily contact: for a shopper who isn't one, it is kept in the store only. Shoppers who opt out still receive emails — just non‑personalised ones.
The section appears whenever Campaign Intelligence is connected and active — whether or not you have finished the email setup wizard. (Until you finish it, an opt‑out takes effect on the store and in Campaign Intelligence, but can't be written to Smaily yet. It stays in force until the shopper opts back in, and after you finish the setup it is written to the shopper's Smaily contact, if they have one.) If you never connect it, disconnect it, or Smaily deactivates the account, shoppers don't see it — and any preference they already saved is kept for when it comes back. If a shopper's preference can't be loaded at that moment and none is known from before, the section shows a short notice asking them to try again later instead of the checkbox, together with an "Opt out of personalised recommendations" button so they can still opt out right away.
Because personalisation is on by default, your store's privacy policy needs a sentence saying that browsing and purchase history is used to personalise recommendations and that customers can turn it off under My Account.
(Valikuline) Selles sammus ühendad Campaign Intelligence'i. Kleebi kaardil Ühenda Smaily Campaign Intelligence Smailylt saadud ühekordne seadistuslink (https://intelligence.smaily.com/setup/…) välja Seadistus-URL ja vajuta Ühenda. Näed teadet ✓ Ühendatud koos oma poe nimega. Kui sa Campaign Intelligence'i veel ei kasuta, vajuta Jätka → ja jäta see samm vahele — saad selle hiljem ühendada jaotises Settings → Campaign Intelligence.
Kui ühendus on loodud, annab see samm mootorile alusandmed ja lülitab sisse valikulised signaalid.
Sünkroonimine on automaatne. Kui ühendatud, sünkroonivad su tooted, kliendid ja tellimused mootorisse iseenesest — andmetüübi kaupa pole midagi sisse lülitada.
Kataloogi import käivitub ühendamisel. Ühendamine saadab kogu su tootekataloogi mootorisse üks kord, taustal; pärast seda saadetakse ainult muudatused (toote salvestamine, laoseisu muutus, kustutamine). Soovitatakse ainult avaldatud tooteid: mustandiks, privaatseks või ülevaatust ootavaks muudetud või prügikasti viidud toode eemaldatakse soovitustest ja uuesti avaldamine toob selle tagasi. Kohe pärast ühendamist ilmub teade Kataloogi import käivitus. Esimesed tooted lähevad teele umbes 3 minuti pärast — vajuta enne seda Peata import ja midagi ei saadeta. Kataloogi impordi saad igal ajal uuesti käivitada nupuga Impordi kohe rea Tooted juures. Kui kataloogi import juba käib, ei käivita uus ühendamine teist.
Öine tooteloend hoiab mootori kataloogi ajakohasena. Kord öösel, kell 03:00 poe aja järgi, saadab plugin mootorile loendi kõigist toodetest, mida kataloogi sünkroonimine saadab — iga toote koodi ja selle, kas toode on laos, muud mitte midagi. Loendist puuduvat toodet (kustutatud toode, mille muudatus mootorini ei jõudnud) enam ei soovitata ja vale laoseis parandatakse. Mustandid, privaatsed ja ülevaatust ootavad tooted loendisse ei kuulu. Iga öö loend on üks catalog.manifest rida Event Logis; Details näitab loendit ja mootori vastust. Sel ööl ei saadeta midagi, kui import käib või tootemuudatused ootavad veel saatmist. Pood, kus on üle 50 000 toote, loendit ei saada: rida märgitakse ebaõnnestunuks ja see ütleb põhjuse. Kui server peatab töö enne lõppu (näiteks PHP ajapiirangu tõttu), märgitakse rida ebaõnnestunuks ja see ütleb, kus töö peatus; järgmisel ööl saadetakse uus loend.
Impordi olemasolevad andmed: käivita Kliendid ja Tellimused import (igaühe Impordi kohe), et mootoril oleks ajalugu, millest õppida — need jäävad sinu valikuks ega käivitu iseenesest. Siin on ka Tooted, et kataloogi importi uuesti käivitada. Kordamine on ohutu — duplikaadid on disaini poolest võimatud.
Sirvimise jälgimine (opt‑in)
Lüliti Track browsing behavior on vaikimisi väljas. See toidab "sarnaste toodete" soovitusi selle põhjal, mida külastajad vaatavad, ja on nõusolekuga piiratud: sirvimissündmused käivituvad ainult külastajatel, kes on andnud turundusnõusoleku.
Lüliti sisselülitamine = sina lubad sirvimise jälgimise. Külastaja küpsise‑nõusoleku bänner on teine värav — mõlemad peavad ütlema "jah", enne kui ükski sirvimissündmus saadetakse. Nõusolekut loetakse WP Consent API kaudu (vt Kaaslas‑pluginad). Arvesse läheb ainult ostja selgesõnaline "jah": nõusolekubänner peab olema WP Consent API‑ga ühendatud ja olema salvestanud ostja turundusele antud "jah". Sellise bännerita, enne kui ostja on vastanud, või pärast "ei"‑d ei saadeta midagi — ka seal, kus bänner loeb vaikimisi nõusolekuks. Lüliti all olev rida ütleb, kumb olukord sinu poes on — nõusolek tuleb sinu nõusolekubännerist WP Consent API kaudu või sirvimise jälgimine ei saada midagi enne, kui nõusolekubänner on WP Consent API‑ga ühendatud, koos lingiga pluginale. Serveripoolseid andmeid (tellimused, kliendid, tooted) see ei mõjuta — need sünkivad alati.
Kliendi profileerimisest loobumine (automaatne)
Igal sisselogitud kliendil on oma My Account töölaual sektsioon Smaily Campaign Intelligence märkeruuduga — "Kasuta minu andmeid personaalsete soovituste jaoks." See on vaikimisi sees (opt‑out mudel). Selle eemaldamine peatab ta andmete kasutamise profileerimiseks, käsib mootoril ta profileerimise lõpetada ja jäetakse meelde ka tema Smaily kontaktil, kui Smailys on ta juba olemas. Valik ei loo kunagi Smaily kontakti: ostleja puhul, kes pole Smaily kontakt, hoitakse seda ainult poes. Loobunud kliendid saavad ikka e‑kirju — lihtsalt mitte‑personaalseid.
Sektsioon on nähtav alati, kui Campaign Intelligence on ühendatud ja aktiivne — sõltumata sellest, kas oled e‑kirjade seadistusviisardi lõpetanud. (Kuni viisard on lõpetamata, jõustub loobumine poes ja Campaign Intelligence'is, kuid Smailysse seda veel kirjutada ei saa. Loobumine kehtib seni, kuni klient uuesti nõustub, ja pärast seadistuse lõpetamist kirjutatakse see kliendi Smaily kontakti, kui see on olemas.) Kui sa seda kunagi ei ühenda, ühenduse katkestad või Smaily konto deaktiveerib, siis kliendid sektsiooni ei näe — ja juba salvestatud eelistus jääb alles, kuni see tagasi tuleb. Kui kliendi eelistust ei õnnestu hetkel laadida ja varasemast pole seda teada, näitab sektsioon märkeruudu asemel lühikest teadet, et ta prooviks hiljem uuesti, koos nupuga "Loobu personaalsetest soovitustest", et ta saaks siiski kohe loobuda.
Kuna personaliseerimine on vaikimisi sees, vajab su poe privaatsuspoliitika lauset, et sirvimis‑ ja ostuajalugu kasutatakse soovituste personaliseerimiseks ja et kliendid saavad selle My Account all välja lülitada.
Step 5 — Forms and RSS feedSamm 5 — Vormid ja RSS
Wire Smaily into your storefront. This step is mostly informational — nothing here is required to sync.
- Newsletter signup block — add the Smaily newsletter block to any page or widget area; signups land in your Smaily contacts automatically.
- Contact Form 7 and Elementor — if either plugin is active, a Smaily subscription field/widget is available in its editor.
- Shortcode — the
[smaily_connect_newsletter_form]shortcode gives full control over form placement in any post, page or widget. See Settings → Integrations. - Product RSS feed — a URL you paste into Smaily's template editor to load store products into campaigns. Configure it under Settings → Integrations.
Ühenda Smaily oma poega. See samm on peamiselt informatiivne — miski siin pole sünkimiseks kohustuslik.
- Uudiskirja liitumisplokk — lisa Smaily uudiskirja plokk mis tahes lehele või vidina‑alale; liitujad jõuavad automaatselt su Smaily kontaktidesse.
- Contact Form 7 ja Elementor — kui üks neist pluginatest on aktiivne, on selle redaktoris saadaval Smaily tellimis‑väli/vidin.
- Lühikood — lühikood
[smaily_connect_newsletter_form]annab täieliku paigutuskontrolli mis tahes postituses, lehel või vidinas. Vt Settings → Integrations. - Toodete RSS‑voog — URL, mille kleebid Smaily malliredaktorisse, et laadida poe tooted kampaaniatesse. Seadista jaotises Settings → Integrations.
Step 6 — OverviewSamm 6 — Ülevaade
Review the summary of everything you configured and press Finish. This unlocks the Settings tabs for ongoing management. You can revisit and change anything later under Settings.
Vaata üle kokkuvõte kõigest, mille seadistasid, ja vajuta Finish. See avab jätkuhalduseks Settings‑vahekaardid. Kõike saab hiljem seadetest üle vaadata ja muuta.
SettingsSeaded
Everything the wizard configured is here for ongoing management, split into tabs. Kõik, mille viisard seadistas, on siin jätkuhalduseks — vahekaartidena.
ConnectionÜhendus
Manage the Smaily account Smaily Connect sends through. Credentials are validated against Smaily before they are saved.
- When connected you'll see Verified and Connected as USERNAME @ subdomain.sendsmaily.net.
- Update credentials changes the API user.
- Disconnect stops contact sync until you reconnect.
If your store sells in more than one language, this tab also offers a multilingual mode (a separate Smaily account or workflow per language). Languages are detected automatically from WPML, Polylang or TranslatePress if you run one of them — see multilingual routing.
The recommendation‑engine connection is shown here too, with its own Test and Disconnect.
An optional transactional emails account — a second, separate Smaily account used only for order/shipping confirmations and the follow-up email — is configured here too, below the main connection; see Transactional emails.
Halda Smaily kontot, mille kaudu Smaily Connect saadab. Andmed valideeritakse Smaily vastu enne salvestamist.
- Kui ühendatud, näed Verified ja Connected as KASUTAJA @ alamdomeen.sendsmaily.net.
- Update credentials vahetab API‑kasutaja.
- Disconnect peatab kontakti‑sünkimise kuni taasühendamiseni.
Kui su pood müüb mitmes keeles, pakub see vahekaart ka mitmekeelset režiimi (eraldi Smaily konto või töövoog keele kohta). Keeled tuvastatakse automaatselt WPML‑ist, Polylangist või TranslatePressist, kui üks neist on kasutusel — vt mitmekeelne suunamine.
Siin kuvatakse ka soovitusmootori ühendus koos oma Test ja Disconnect nuppudega.
Ka vabatahtlik tehingu‑e‑kirjade konto — teine, eraldi Smaily konto, mida kasutatakse ainult ostu ja tarne kinnituskirjade ning järelkirja jaoks — seadistatakse siin, põhiühenduse all; vt Tehingu‑e‑kirjad.
ContactsKontaktid
Controls who is copied to your Smaily contact list and which fields are sent.
Sync contacts to Smaily is the master switch. When off, customers are no longer copied to Smaily; existing contacts and Smaily automations are unaffected.
Who is synced (consent presets)
Choose by your lawful basis for marketing email. The default is the consent‑safe option.
- Subscribers only (consent) (default) — only customers who opted in to email marketing are sent.
- All customers (legitimate interest) — every registered customer is sent regardless of marketing consent. Requires a lawful basis. This is the EU soft opt‑in: a customer new to Smaily becomes a subscriber, and one who has unsubscribed stays unsubscribed. Email these customers only about products similar to what they bought, and give them a clear way to refuse marketing when they buy. The legal basis is your responsibility.
- Checkout opt‑in only — only shoppers who accept marketing at checkout are sent (guests included).
Fields to sync
Email is always synced (it identifies the contact) and language is always synced (it routes contacts to the right account in multilingual setups). Pick any additional fields you want copied. You can also sync guest‑order email addresses.
Upgrading from an older Smaily plugin keeps the fields you had chosen there, and the tick boxes show them — so you can change them like any other setting. In the rare case your saved selection can't be read, the plugin says so in an admin notice and syncs every supported field until you tick and save a new selection.
Määrab, kes kopeeritakse su Smaily kontaktinimekirja ja millised väljad saadetakse.
Sync contacts to Smaily on pealüliti. Väljas olles kliente enam Smailysse ei kopeerita; olemasolevaid kontakte ja Smaily automaatikaid see ei mõjuta.
Keda sünkroonitakse (nõusoleku‑eelseaded)
Vali oma turunduse‑e‑kirja seadusliku aluse järgi. Vaikeväärtus on nõusoleku‑ohutu variant.
- Subscribers only (consent) (vaikimisi) — saadetakse ainult kliendid, kes on turundusele nõusoleku andnud.
- All customers (legitimate interest) — iga registreeritud klient saadetakse turundusnõusolekust sõltumata. Nõuab seaduslikku alust. See on ELi pehme nõusolek (soft opt‑in): Smaily jaoks uus klient saab tellijaks ja tellimusest loobunud klient jääb loobunuks. Saada neile klientidele turunduskirju ainult ostetuga sarnaste toodete kohta ja anna neile ostu tegemisel selge võimalus turundusest keelduda. Õigusliku aluse eest vastutad sina.
- Checkout opt‑in only — saadetakse ainult kassas turunduse aktsepteerinud (sh külalised).
Sünkroonitavad väljad
E‑post sünkroonitakse alati (see identifitseerib kontakti) ja keel sünkroonitakse alati (see suunab kontaktid mitmekeelses seadistuses õigesse kontosse). Vali soovitud lisaväljad. Sünkida saab ka külalis‑tellimuste e‑posti aadresse.
Vanemalt Smaily pluginalt uuendades säilivad seal valitud väljad ja märkeruudud näitavad neid — nii saad neid muuta nagu iga teist seadet. Harval juhul, kui salvestatud valikut ei õnnestu lugeda, ütleb plugin seda haldusteates ja sünkroonib kõik toetatud väljad, kuni märgid ja salvestad uue valiku.
How consent is recordedKuidas nõusolek salvestatakse
In Subscribers only (consent) mode, a customer is synced to Smaily only when your store records them as subscribed to email marketing. Your store's own marketing‑consent record is the evidence — the plugin never assumes consent, it mirrors what your store captured.
Consent is captured by your store — the checkout marketing checkbox, or the newsletter box on the My Account registration form or in Account details. The Smaily newsletter block is different: it sends the signup straight to Smaily, so your store does not record it. The record is a single subscribed‑or‑not mark on the customer's account.
Language routing
The language sent with each contact is resolved from the customer's preferred language, then their most recent order's language, then the site's multilingual default (WPML / Polylang / TranslatePress) — never from the request context. This keeps a scheduled sync and a live request giving the same answer, so a store with an English WordPress locale but Estonian content doesn't get its contacts mislabelled.
Subscribers only (consent) režiimis sünkroonitakse klient Smailysse ainult siis, kui su pood on ta märkinud turundusele tellijaks. Su poe enda turundusnõusoleku‑kirje on tõend — plugin ei eelda kunagi nõusolekut, vaid peegeldab seda, mille su pood salvestas.
Nõusoleku salvestab su pood — kassa turunduse‑märkeruut või uudiskirja märkeruut „Minu konto“ registreerimisvormil või konto andmetes. Smaily uudiskirja plokk on teistsugune: see saadab liitumise otse Smailysse, nii et su pood seda ei salvesta. Kirje on üks märge kliendi kontol: kas ta on tellija või mitte.
Keele suunamine
Iga kontaktiga saadetav keel tuletatakse kliendi eelistatud keelest, siis ta viimasest tellimusest, siis saidi mitmekeelsest vaikekeelest (WPML / Polylang / TranslatePress) — mitte kunagi päringu kontekstist. Nii annavad ajastatud sünk ja reaalajas päring sama tulemuse, ja inglise WordPressi‑lokaadiga aga eesti sisuga pood ei saa oma kontakte valesti märgitud.
AutomationsAutomaatikad
Three kinds of automation live here.
- Every dropdown reads the workflow list live from your Smaily account each time you open the settings page — there's no cache and no refresh interval. Made a change in Smaily? Reload the settings page to see it.
- Only active workflows are listed. Deactivate a workflow in Smaily and it disappears from these dropdowns. If a trigger was saved with that workflow, its dropdown shows
#<id> — inactiveinstead — that email is not sent until you choose an active workflow and save. - Each dropdown lists the workflows of the account its section uses — the transactional‑email sections list the separate transactional account's workflows, not your main account's.
Store‑run triggers
Map a store event to a Smaily workflow: Welcome, First order, Abandoned cart. Welcome fires when a shopper subscribes to your marketing emails in your store (the checkout box or My Account) and your contact sync sends them to Smaily — not when an account is created, and not for an opt‑in added in WordPress admin or by an import. Subscribing again after an unsubscribe starts it again; the welcome itself never re‑subscribes someone who unsubscribed. The Smaily newsletter block and forms choose their welcome workflow in their own settings. Abandoned cart has a delay (minutes of inactivity before a cart counts as abandoned). If no workflows appear, none were found on your Smaily account (or Smaily couldn't be reached) — create them in Smaily first. The fields each email carries for your template are listed under Merge tags.
Every time one of these fires, it writes the moment it ran onto the contact in Smaily, so you can tell an automation‑enrolled contact from someone who subscribed themselves:
welcome_automation_atfirst_order_automation_atabandoned_cart_automation_at
The value is the last run's date and time in UTC (2026-08-04 14:30:00) — it's overwritten on each run, and a trigger that has never fired for a contact leaves its field untouched. Use these in Smaily to include or exclude automation‑touched contacts. The abandoned‑cart template field is_abandoned_cart is unchanged and still sent alongside.
Smaily adds an address a reminder is sent to as a subscribed contact. So before every reminder the plugin reads the shopper's contact in Smaily, and it sends the reminder only where your contact sync mode allows it:
- Subscribers only (consent) — only to a shopper who has subscribed to your marketing emails: their account is marked subscribed in your store, they ticked the newsletter box in the classic checkout they left, or Smaily has them as a subscribed contact.
- Checkout opt‑in only — the same, except that this mode keeps no subscribed mark on store accounts: the tick in the classic checkout they left, or a subscribed contact in Smaily.
- All customers (legitimate interest) — to every shopper, except one who has unsubscribed in Smaily.
A shopper who has unsubscribed in Smaily never gets a reminder, in any mode. The block checkout reports the newsletter box only when the order is placed, so a tick there does not count for a reminder. In Subscribers only mode with guest‑order addresses not synced, a guest's tick on an earlier order never reached Smaily, so a returning guest gets a reminder only if they tick the box again in the classic checkout. A contact you delete in Smaily is a new address to Smaily: in All customers mode a reminder adds it again as subscribed. The reminder doesn't depend on the Sync contacts to Smaily switch. If Smaily can't be reached, the reminder waits and is retried — it is never sent without the check. A reminder the rule stops shows in the Event Log as skipped, with the reason: The shopper has not subscribed to marketing emails, neither in the store nor in Smaily. or The shopper has unsubscribed from marketing emails in Smaily.
Contacts that earlier reminders added. Before version 3.19.0 every reminder went out without this check, so a shopper who was not yet a contact became a subscribed contact in Smaily. The rule above counts such a contact as subscribed, so they keep getting reminders — and your newsletters. The plugin can't tell them apart from shoppers who subscribed themselves. You can find them by the fields the plugin wrote on the contact with every reminder: is_abandoned_cart (true) and, since version 3.11.2, abandoned_cart_automation_at (the time of the last reminder, UTC). These fields are also on contacts who were already subscribed when they got a reminder. What you do with these contacts — for example, filter or segment them in Smaily by these fields and review them — is your decision.
When a shopper you sent an abandoned‑cart reminder to completes an order, the plugin writes one more field onto their contact:
abandoned_cart_purchased_at— the date and time of the purchase, in UTC, in the same format as the fields above.
Use it as the exit condition on every follow‑up step of your abandoned‑cart workflow: continue only while abandoned_cart_purchased_at is earlier than abandoned_cart_automation_at (or empty) — the shopper has bought when the purchase time is the later of the two. Both checkouts (classic and block) and both guests and logged‑in shoppers are covered, and the purchase counts as soon as the order is placed, without waiting for payment status.
It is written only for a shopper the plugin actually sent a reminder to — an ordinary purchase writes nothing and creates no contact — and only when Smaily already has that shopper as a contact: the field never creates one. When Smaily doesn't have them, nothing is sent, and the Details of the row in the Event Log show it as skipped, with the reason. The reminder's cart and product fields are left exactly as the reminder wrote them. If the shopper buys before the reminder has gone out, the reminder is dropped instead: the Event Log row shows it as cancelled.
Each of the three cards has a Send a discount code switch. With it on, every email of that automation carries the shopper's own discount code. The discount itself is one of your WooCommerce coupons — the plugin copies it into a new code for each shopper. Set it up like this:
- In WooCommerce, open Marketing → Coupons and press Add coupon. Set the discount type (Percentage discount, Fixed cart discount or Fixed product discount), the amount and any restrictions — minimum or maximum spend, products, categories, brands, sale items, free shipping — and publish it. Its own code is never sent: shoppers get copies.
- Reload this tab. On the automation's card, switch on Send a discount code, pick the coupon under Discount (WooCommerce coupon) and set Valid for (days) (1–365, 7 by default). The list shows your published coupons of WooCommerce's own discount types that have not expired. With none, the card says how to create one and links to WooCommerce's add‑coupon screen.
- Save, and put the code and its last day into the workflow's email — see Merge tags.
- Each code copies the coupon's discount and restrictions, including the brands the coupon is limited to or excludes. It works once, only with the shopper's email address, until the end of its last valid day: that many days after the email, in your store's timezone (Settings → General → Timezone), and never after the coupon's own expiry date. After that day, once it was used, or with another email address, WooCommerce itself refuses the code.
- The code is made when the email is sent. A send that is retried gets the same code. While the code an earlier email of the same automation gave the shopper is unused and still valid, the next email of that automation carries that same code and its last day again, and no new code is made. Once the code is used or has expired, or after you pick another coupon for the automation, the next email gets a new code. A reminder that is skipped (see above), or an automation with no workflow, makes none.
- If the coupon can't give a code when the email goes — deleted, in the trash, expired, or of another plugin's discount type — the email goes without a code, and the row's Details in the Event Log say why. The same happens for an email address with a letter outside A–Z, such as ä or õ: WooCommerce would change the address, so the code would not work for the shopper.
- The codes are ordinary WooCommerce coupons with a random 10‑character code, listed under Marketing → Coupons. Once a day the plugin deletes the codes it made that were never used, 30 days after they expired. A used code stays.
Engine‑run recommendation automations
These are triggered by Campaign Intelligence, not by a store event — the engine enrols each contact into the Smaily workflow you pick at the moment it predicts (a replenishment running out, a customer at risk of churning). Per automation you set:
- an Enable toggle and the Smaily workflow to use;
- a Cooldown — minimum days between two fires for the same customer (1–365);
- Test mode — while on, emails go only to your test addresses (comma‑separated), never to customers. Use Activate for real… to ask for real sends.
Test mode starts on. A test‑mode automation with no test addresses sends to no one until you add at least one address — so an automation can never fire at customers before you mean it to.
Activate for real… marks your request on this page when you save; the plugin does not send it to Smaily. The automation stays in test mode — test addresses only — until Smaily switches real sends on after your confirmation; contact Smaily support to confirm.
After each save the plugin reads back what Campaign Intelligence stored, and the label on each automation shows it: Test mode, Waiting for Smaily's confirmation (you asked for real sends and Smaily has not switched them on yet) or Live — real sends on. The waiting label comes from your own last save on that page: after you reload the page, an automation that is still waiting shows Test mode again.
With Campaign Intelligence connected, every email card on this tab — the store‑run triggers, the transactional emails and each engine‑run automation — shows Edit design when Campaign Intelligence offers a design for that email. It opens the email's design page in a new browser tab, where you edit the subject, sender and design and can send yourself a test email. If your browser blocks the new tab, allow pop‑ups for your WordPress admin and press the button again. When you come back to this tab, the card shows the design's state and subject.
Once Campaign Intelligence has delivered a design to Smaily as a workflow, the plugin starts that email with it in place of the workflow you picked — but only where you picked the workflow on your main Smaily account and for your store's default language (or for all languages). The follow‑up email and the order and shipping confirmations, which go through the separate transactional Smaily account, keep the workflows you picked. In a multilingual mode, a language with its own Smaily account and a language other than the default with its own workflow keep theirs too. Your settings here still decide whether and when the email is sent, and an email with no workflow picked is still not sent. Delivery to Smaily is not live yet: until it is, your emails keep using the workflows you picked.
Transactional‑email triggers
Order confirmation, Shipping confirmation and the follow‑up email appear here too — but only once you've connected the separate transactional Smaily account on the Connection tab. See Transactional emails for the full walkthrough.
Siin elab kolme liiki automaatikat.
- Iga rippmenüü loeb töövoogude nimekirja otse ja reaalajas su Smaily kontolt iga kord, kui avad seadete lehe — vahemälu ega värskendusintervalli pole. Tegid Smailys muudatuse? Lae seadete leht uuesti, et seda näha.
- Nimekirjas on ainult aktiivsed töövood. Kui deaktiveerid töövoo Smailys, kaob see nendest rippmenüüdest. Kui mõni päästik oli selle töövooga salvestatud, näitab selle rippmenüü hoopis
#<id> — mitteaktiivne— seda e‑kirja ei saadeta enne, kui valid aktiivse töövoo ja salvestad. - Iga rippmenüü näitab selle sektsiooni kasutatava konto töövoogusid — tehingu‑e‑kirjade jaotised näitavad eraldi tehingukonto töövoogusid, mitte su põhikonto omi.
Poe‑käivitatavad
Seo poe sündmus Smaily töövooga: Welcome, First order, Abandoned cart. Welcome käivitub, kui ostleja liitub su poes turunduskirjadega (kassa märkeruuduga või „Minu konto“ all) ja su kontaktide sünkroonimine saadab ta Smailysse — mitte konto loomisel ega WordPressi haldusliideses või importimisel lisatud nõusoleku puhul. Pärast loobumist uuesti liitumine käivitab selle uuesti; tervitus ise ei telli kunagi uuesti kedagi, kes on loobunud. Smaily uudiskirja plokk ja vormid valivad oma tervituse töövoo enda seadetes. Pooleli jäänud korval on viivitus (tegevusetuse minutid, enne kui korv loetakse hüljatuks). Kui ühtegi töövoogu ei kuva, ei leitud su Smaily kontolt ühtegi (või Smailyni ei jõutud) — loo need enne Smailys. Kirjapõhjas kasutatavad väljad leiad jaotisest Kirjapõhja märgendid.
Iga kord, kui mõni neist käivitub, kirjutab see kontaktile Smailys käivitumise hetke, nii et eristad automaatika kaudu lisatud kontakti sellest, kes ise tellijaks hakkas:
welcome_automation_atfirst_order_automation_atabandoned_cart_automation_at
Väärtus on viimase käivituse kuupäev ja kellaaeg UTC‑s (2026-08-04 14:30:00) — see kirjutatakse igal käivitusel üle ja päästik, mis pole selle kontakti jaoks kunagi käivitunud, jätab oma välja puutumata. Kasuta neid Smailys automaatikaga puudutatud kontaktide kaasamiseks või välistamiseks. Pooleli jäänud korvi malli‑väli is_abandoned_cart on muutmata ja saadetakse endiselt kõrvuti.
Smaily lisab aadressi, millele meeldetuletus saadetakse, tellijast kontaktina. Seepärast loeb plugin enne iga meeldetuletust ostleja kontakti Smailyst ja saadab meeldetuletuse ainult siis, kui su kontaktide sünkroonimise režiim seda lubab:
- Subscribers only (consent) — ainult ostlejale, kes on su turunduskirjadega liitunud: tema konto on su poes märgitud tellijaks, ta märkis pooleli jäetud klassikalises kassas uudiskirja märkeruudu või Smaily peab teda tellijast kontaktiks.
- Checkout opt‑in only — sama, ainult et see režiim ei pea poe kontodel tellija märget: arvesse läheb märkeruut pooleli jäetud klassikalises kassas või tellijast kontakt Smailys.
- All customers (legitimate interest) — igale ostlejale, välja arvatud sellele, kes on Smailys loobunud.
Ostleja, kes on Smailys loobunud, ei saa meeldetuletust üheski režiimis. Plokk‑kassa annab uudiskirja märkeruudu teada alles tellimuse vormistamisel, seega seal tehtud märge meeldetuletuse jaoks arvesse ei lähe. Subscribers only režiimis, kui külalis‑tellimuste aadresse ei sünkroonita, ei jõudnud külalise varasema tellimuse märge Smailysse, nii et naasev külaline saab meeldetuletuse ainult siis, kui ta märgib ruudu klassikalises kassas uuesti. Smailys kustutatud kontakt on Smaily jaoks uus aadress: All customers režiimis lisab meeldetuletus selle uuesti tellijana. Meeldetuletus ei sõltu lülitist Sync contacts to Smaily. Kui Smailyni ei jõuta, meeldetuletus ootab ja seda proovitakse uuesti — ilma kontrollita seda kunagi ei saadeta. Reegli peatatud meeldetuletus on sündmuste logis olekuga vahele jäetud koos põhjusega: Ostleja ei ole turunduskirjadega liitunud, ei poes ega Smailys. või Ostleja on Smailys turunduskirjadest loobunud.
Varasemate meeldetuletuste lisatud kontaktid. Enne versiooni 3.19.0 läks iga meeldetuletus välja ilma selle kontrollita, nii et ostlejast, kes polnud veel kontakt, sai Smailys tellijast kontakt. Ülaltoodud reegel loeb sellise kontakti tellijaks, nii et ta saab edasi meeldetuletusi — ja ka su uudiskirju. Plugin ei suuda neid eristada ostlejatest, kes ise liitusid. Leiad nad väljade järgi, mille plugin kirjutas iga meeldetuletusega kontaktile: is_abandoned_cart (true) ja alates versioonist 3.11.2 ka abandoned_cart_automation_at (viimase meeldetuletuse aeg UTC‑s). Need väljad on ka kontaktidel, kes olid meeldetuletuse saamise ajal juba tellijad. Mida nende kontaktidega teed — näiteks filtreerid või segmenteerid nad Smailys nende väljade järgi ja vaatad üle —, otsustad sina.
Kui ostleja, kellele saatsid pooleli jäänud korvi meeldetuletuse, vormistab tellimuse, kirjutab plugin tema kontaktile veel ühe välja:
abandoned_cart_purchased_at— ostu kuupäev ja kellaaeg UTC‑s, samas vormingus nagu eespool olevad väljad.
Kasuta seda pooleli jäänud korvi töövoo iga meeldetuletuse väljumistingimusena: jätka ainult siis, kui abandoned_cart_purchased_at on varasem kui abandoned_cart_automation_at (või tühi) — ostleja on ostnud siis, kui ostu aeg on neist kahest hilisem. Kaetud on mõlemad kassad (klassikaline ja plokk‑kassa) ning nii külalised kui sisse logitud ostlejad, ja ost loeb kohe tellimuse vormistamisel, ootamata makse staatust.
See kirjutatakse ainult sellele ostlejale, kellele plugin päriselt meeldetuletuse saatis — tavaline ost ei kirjuta midagi ega loo kontakti — ja ainult siis, kui see ostleja on Smailys juba kontakt: väli ei loo kunagi kontakti. Kui Smailys teda pole, ei saadeta midagi ja sündmuste logi rea üksikasjad näitavad seda vahele jäetuna koos põhjusega. Meeldetuletuse korvi‑ ja tooteväljad jäävad täpselt sellisteks, nagu meeldetuletus need kirjutas. Kui ostleja ostab enne, kui meeldetuletus on välja läinud, jäetakse meeldetuletus hoopis ära: sündmuste logi rida näitab seda tühistatuna.
Igal kolmel kaardil on lüliti Send a discount code („Saada sooduskood“). Kui see on sees, kannab selle automaatika iga e‑kiri ostleja enda sooduskoodi. Soodustus ise on üks su WooCommerce'i kupongidest — plugin kopeerib selle igale ostlejale uueks koodiks. Seadista see nii:
- Ava WooCommerce'is Turundus → Kupongid (Marketing → Coupons) ja vajuta Lisa kupong (Add coupon). Määra allahindluse tüüp (protsentuaalne, fikseeritud summa ostukorvilt või fikseeritud summa tootelt), summa ja soovi korral piirangud — minimaalne või maksimaalne summa, tooted, kategooriad, kaubamärgid, soodushinnaga tooted, tasuta tarne — ning avalda kupong. Kupongi enda koodi ei saadeta kunagi: ostlejad saavad selle koopiad.
- Laadi see vahekaart uuesti. Lülita automaatika kaardil sisse Send a discount code, vali kupong väljal Discount (WooCommerce coupon) („Soodustus (WooCommerce'i kupong)“) ja määra Valid for (days) („Kehtib (päeva)“) — 1–365, vaikimisi 7. Loendis on su avaldatud ja aegumata kupongid WooCommerce'i enda allahindlustüüpidega. Kui ühtegi pole, ütleb kaart, kuidas see luua, ja viitab WooCommerce'i kupongi lisamise lehele.
- Salvesta ja lisa kood ning selle viimane päev töövoo e‑kirja — vt Kirjapõhja märgendid.
- Iga kood kopeerib kupongi soodustuse ja piirangud, sealhulgas kaubamärgid, millega kupong on piiratud või mille see välistab. See kehtib üks kord, ainult ostleja e‑posti aadressiga, kuni oma viimase kehtivuspäeva lõpuni: nii mitu päeva pärast e‑kirja, su poe ajavööndis (Seaded → Üldine → Ajavöönd), ja mitte kunagi pärast kupongi enda aegumiskuupäeva. Pärast seda päeva, pärast kasutamist või teise e‑posti aadressiga keeldub koodist WooCommerce ise.
- Kood luuakse e‑kirja saatmisel. Uuesti proovitud saatmine saab sama koodi. Kuni sama automaatika varasema e‑kirja kood on ostlejal kasutamata ja kehtib, kannab selle automaatika järgmine e‑kiri sedasama koodi ja selle viimast päeva ning uut koodi ei looda. Kui kood on kasutatud või aegunud või kui valid automaatikale teise kupongi, saab järgmine e‑kiri uue koodi. Vahele jäetud meeldetuletus (vt eespool) või töövoota automaatika koodi ei loo.
- Kui kupong ei saa kirja saatmise ajal koodi anda — kustutatud, prügikastis, aegunud või mõne teise plugina allahindlustüübiga —, läheb e‑kiri ilma koodita ja sündmuste logi rea Details ütleb, miks. Sama juhtub e‑posti aadressiga, milles on täht väljastpoolt A–Z, näiteks ä või õ: WooCommerce muudaks aadressi ja kood ei töötaks ostleja jaoks.
- Koodid on tavalised WooCommerce'i kupongid juhusliku 10‑märgilise koodiga ja on näha jaotises Turundus → Kupongid. Kord päevas kustutab plugin enda loodud koodid, mida pole kunagi kasutatud, 30 päeva pärast nende aegumist. Kasutatud kood jääb alles.
Mootori‑käivitatavad soovitus‑automaatikad
Neid käivitab Campaign Intelligence, mitte poe sündmus — mootor lisab iga kontakti sinu valitud Smaily töövoogu hetkel, mil ta ennustab (varu saab otsa, klient ohus lahkuda). Automaatika kohta sead:
- Enable lüliti ja kasutatava Smaily töövoo;
- Cooldown — vähim päevade arv sama kliendi kahe käivituse vahel (1–365);
- Test mode — sees olles lähevad e‑kirjad ainult su test‑aadressidele (komadega eraldatud), mitte kunagi klientidele. Päris saatmise taotlemiseks kasuta Activate for real….
Test mode algab sees. Test‑režiimi automaatika ilma test‑aadressideta saadab mitte kellelegi, kuni lisad vähemalt ühe aadressi — nii ei saa automaatika kunagi klientidele käivituda enne, kui sa seda soovid.
Activate for real… märgib salvestamisel sinu taotluse sellel lehel; plugin ei saada seda Smailyle. Automaatika jääb testrežiimi — ainult test‑aadressidele — kuni Smaily lülitab päris saatmise sisse pärast sinu kinnitust; kinnitamiseks võta ühendust Smaily toega.
Pärast iga salvestamist loeb plugin tagasi, mida Campaign Intelligence salvestas, ja iga automaatika silt näitab seda: Test mode („Testrežiim“), Waiting for Smaily's confirmation („Ootab Smaily kinnitust“ — taotlesid päris saatmist ja Smaily pole seda veel sisse lülitanud) või Live — real sends on („Aktiivne — päris saatmine sees“). Ootamise silt tuleb sinu enda viimasest salvestamisest sellel lehel: kui laadid lehe uuesti, näitab veel ootel automaatika jälle Test mode silti.
Kui Campaign Intelligence on ühendatud, on sellel vahekaardil igal e‑kirja kaardil — poe‑käivitatavad päästikud, tehingu‑e‑kirjad ja iga mootori‑käivitatav automaatika — nupp Edit design („Muuda kujundust“), kui Campaign Intelligence pakub selle kirja jaoks kujundust. Nupp avab kirja kujunduse lehe uuel brauseri vahekaardil, kus muudad teemarida, saatjat ja kujundust ning saad endale testkirja saata. Kui brauser blokeerib uue vahekaardi, luba oma WordPressi haldusliideses hüpikaknad ja vajuta nuppu uuesti. Kui tuled sellele vahekaardile tagasi, näitab kaart kujunduse olekut ja teemarida.
Kui Campaign Intelligence on kujunduse Smailysse töövooks viinud, käivitab plugin selle kirja sellega sinu valitud töövoo asemel — kuid ainult siis, kui valisid töövoo oma põhilises Smaily kontos ja poe vaikekeele jaoks (või kõigi keelte jaoks). Järelkiri ning ostu ja tarne kinnituskiri, mis lähevad välja eraldi tehingu‑Smaily konto kaudu, kasutavad edasi sinu valitud töövooge. Mitmekeelses režiimis kasutavad oma töövooge edasi ka keel, millel on oma Smaily konto, ja vaikekeelest erinev keel, millel on oma töövoog. Siinsed seaded otsustavad endiselt, kas ja millal kiri saadetakse, ning kirja, millele pole töövoogu valitud, ei saadeta ka edaspidi. Smailysse viimine ei ole veel töös: seni kasutavad su kirjad sinu valitud töövooge.
Tehingu‑e‑kirjade päästikud
Ostu kinnituskiri, Tarne kinnituskiri ja järelkiri ilmuvad ka siia — aga alles pärast eraldi tehingu‑Smaily konto ühendamist Connection vahekaardil. Täisjuhendi leiad siit: Tehingu‑e‑kirjad.
Transactional emailsTehingu‑e‑kirjad
Send your order confirmation, shipping notice and a follow-up email through Smaily instead of WordPress's own mail, using a separate Smaily account bound only to these sends — kept apart from your marketing account so a marketing bounce or complaint can never threaten order‑email delivery.
Two places, on purpose: Settings → Connection tab is where you connect the account (toggle → subdomain/username/password → Test connection → the same green "✓ Connected" checkmark your main Smaily connection uses). Settings → WooCommerce tab is where the "Order confirmation", "Shipping confirmation" and "Follow-up email" sections appear — but only once that connection is established; until then the WooCommerce tab shows nothing transactional.
On the Connection tab, Send transactional emails is the master switch for the account itself; each of the three emails on the WooCommerce tab has its own switch too, so you can turn on order confirmations without shipping notices, or vice‑versa.
Order confirmation
Sent once, the moment a customer places an order. Map it to a Smaily workflow the same way as the automations above. The fields these emails carry are listed under Merge tags.
Multilingual store: when your site has more than one language, each section shows one workflow row per language, whichever multilingual mode you picked. Each order is sent through the workflow for the language it was placed in, so you can build one single‑section workflow per language on the transactional account. An order in a language with no workflow mapped goes to the row marked Default fallback.
Shipping confirmation
Sent once, when an order first reaches a status you've marked as "Counts as shipped" — pick any number of your store's order statuses (built‑in or custom, e.g. a shipping plugin's "Shipped" status). A later flip back into a shipped status for the same order never sends a second notice.
While either toggle is on, Smaily Connect quietly takes over WooCommerce's matching built‑in customer email (Processing order / Completed order) so the customer never gets two emails for the same event. Completed‑order suppression only applies when "completed" is itself one of your chosen shipped statuses — a custom status (like "Shipped") has no built‑in WooCommerce email to replace.
Follow-up email
Sent a set number of days after an order first reaches a status you've ticked for it — a feedback request once the customer has had time to use what they bought, say. Tick the statuses that start the wait (by default completed) and set Days to wait: a whole number from 1 to 90, 7 by default. The shipping confirmation still goes out at once — one status change can start both.
When the wait ends, the plugin checks again before it sends: the email must still be switched on with a workflow chosen, and the order must still be at one of the ticked statuses — never cancelled, refunded or failed. If not, nothing is sent and the Event Log row reads skipped, with the reason. Each order gets at most one follow-up: reaching a ticked status again never queues a second one. While it waits, the follow-up shows in the Event Log as scheduled, with the time it will be sent.
The follow-up replaces no WooCommerce email, so it has no WooCommerce fallback: a send Smaily refuses shows as failed in the Event Log, and you can retry it there.
Customer details
Below the sections, Customer details → Include addresses, phone and order note adds the delivery name, the billing and delivery address, the phone number and the customer's order note to the transactional emails. It's off by default — this is personal data, so switch it on only if your template shows it. The fields are listed under Merge tags.
If Smaily can't be reached, or briefly rejects an order or shipping confirmation, WooCommerce's own email for that order fires automatically as a fallback — a customer is never left without a confirmation. A send that keeps failing is retried for up to about an hour before this fallback kicks in, so a longer Smaily outage doesn't leave the customer waiting indefinitely. The attempt is recorded in your Event Log either way.
Is it sending? The status line
Each confirmation card on the WooCommerce tab has a status line, worked out from the same checks the plugin runs before every send. It names the first thing that stops the email:
- Transactional emails are switched off — the master switch on the Connection tab is off.
- This email is switched off — the card's own switch is off.
- No workflow is chosen — pick one in the card's menu.
- The chosen workflow is not active in Smaily — activate it in Smaily or choose another one.
- The transactional Smaily account is not fully connected — check the subdomain, username and password on the Connection tab. If the line says the saved password can no longer be read (this happens when the site's security keys in
wp-config.phpchange), re‑enter the password there.
When nothing stops it, the line shows when the email was last sent (or that nothing was sent in the last 30 days). The shipping and follow-up cards also warn you when no order in the last 30 days reached a status ticked for that email, and list the statuses your recent orders did reach — the usual sign that your fulfilment uses a custom status that isn't ticked yet. The line shows your saved settings and updates when you save.
No runs in the Smaily workflow is normal. These emails go out through Smaily's transactional sending: Smaily sends the chosen workflow's email straight away, one message per order. The workflow itself doesn't run — delays and other steps set in it don't apply, and it shows no runs. For the follow-up email, the plugin itself waits the days you set on its card. To see what was sent, open the Event Log.
Skipped rows in the Event Log. When an order reaches the point where a switched‑on confirmation should go out (a new order, or a ticked status) but it can't — no workflow chosen, the connection incomplete, or the order has no billing email — the Event Log gets a row marked skipped, with the reason. The row holds the order number only. A switched‑off email leaves no row. A skipped send doesn't use up the order's one email: once the cause is fixed, the shipping confirmation goes out the next time the order reaches a ticked status. A follow-up email is also skipped when its wait ends and the order was cancelled, refunded or failed, or is no longer at a ticked status — that one has used up the order's follow-up.
- The mapped workflow must have a single section — a multi‑section workflow sends every section at once, which isn't what a one‑shot transactional email needs.
- A subject line that varies per order (e.g. including the order number) must be a merge tag inside the workflow template — there's no per‑send subject override from WordPress.
Saada ostu kinnituskiri, tarne kinnituskiri ja järelkiri Smaily kaudu (mitte WordPressi enda meili kaudu), kasutades eraldi Smaily kontot, mis on seotud ainult nende saadetistega — hoitud lahus su turunduskontost, nii et turunduse tagasipõrge või kaebus ei saa kunagi ohustada tellimuse‑e‑kirjade kohaletoimetamist.
Kaks kohta, meelega: Settings → Connection vahekaart on koht, kus ühendad konto (lüliti → subdomeen/kasutajanimi/parool → Test connection → sama roheline "✓ Connected" märge, mida su põhi‑Smaily ühendus kasutab). Settings → WooCommerce vahekaart on koht, kus ilmuvad "Ostu kinnituskiri", "Tarne kinnituskiri" ja "Järelkiri" jaotised — aga alles siis, kui see ühendus on loodud; enne seda ei näita WooCommerce vahekaart tehingu‑e‑kirjade kohta midagi.
Connection vahekaardil on Saada tehingulisi kirju pealüliti konto enda jaoks; igal kolmest WooCommerce vahekaardi kirjast on ka oma lüliti, nii saad sisse lülitada ostu kinnituskirjad ilma tarne kinnituskirjadeta või vastupidi.
Ostu kinnituskiri
Saadetakse üks kord, hetkel kui klient tellimuse esitab. Seo see Smaily töövooga samamoodi nagu ülal olevad automaatikad. Nende kirjade väljad leiad jaotisest Kirjapõhja märgendid.
Mitmekeelne pood: kui su saidil on rohkem kui üks keel, näitab iga jaotis iga keele jaoks eraldi töövoo rida, sõltumata valitud mitmekeelsuse režiimist. Iga tellimus saadetakse selle keele töövooga, milles tellimus tehti, nii et tehingukontole saad teha iga keele jaoks oma ühe sektsiooniga töövoo. Kui tellimuse keelele pole töövoogu määratud, kasutatakse rida, mis on märgitud kui Vaikimisi varuvalik.
Tarne kinnituskiri
Saadetakse üks kord, kui tellimus jõuab esimest korda staatusesse, mille oled märkinud kui "Loetakse saadetuks" — vali suvaline arv oma poe staatuseid (sisseehitatud või kohandatud, nt saatmis‑pluginate "Shipped" staatus). Hilisem tagasipöördumine samasse saadetud‑staatusesse sama tellimuse puhul teist teadet enam ei saada.
Kui kumbki lüliti on sees, võtab Smaily Connect vaikselt üle WooCommerce'i vastava sisseehitatud kliendi‑e‑kirja (Processing order / Completed order), et klient ei saaks sama sündmuse kohta kaht e‑kirja. Completed‑order e‑kirja mahasurumine kehtib ainult siis, kui "completed" ise on üks su valitud saadetud‑staatustest — kohandatud staatusel (nt "Shipped") pole asendatavat sisseehitatud WooCommerce'i e‑kirja.
Järelkiri
Saadetakse määratud arvu päevade järel pärast seda, kui tellimus jõuab esimest korda olekusse, mille oled selle jaoks märkinud — näiteks tagasiside palve, kui kliendil on olnud aega ostetut kasutada. Märgi olekud, mis ooteaja käivitavad (vaikimisi completed), ja määra Ooteaeg päevades: täisarv 1 kuni 90, vaikimisi 7. Tarne kinnituskiri läheb endiselt välja kohe — üks olekumuutus võib käivitada mõlemad.
Ooteaja lõppedes kontrollib plugin enne saatmist uuesti: kiri peab olema endiselt sisse lülitatud ja töövoog valitud ning tellimus peab olema endiselt mõnes märgitud olekus — mitte kunagi tühistatud, tagastatud ega ebaõnnestunud. Kui nii pole, ei saadeta midagi ja Event Log'i rida on märgisega vahele jäetud ning põhjusega. Iga tellimus saab kõige rohkem ühe järelkirja: märgitud olekusse uuesti jõudmine ei pane teist ootele. Ooteajal on järelkiri Event Log'is märgisega ajastatud (scheduled) ja saatmise ajaga.
Järelkiri ei asenda ühtegi WooCommerce'i kirja, seega pole sellel WooCommerce'i varuvarianti: saatmine, millest Smaily keeldub, on Event Log'is olekuga failed ja seal saad seda uuesti proovida.
Kliendi andmed
Jaotiste all olev Kliendi andmed → Lisa aadressid, telefon ja tellimuse märkus lisab tehingu‑e‑kirjadele saaja nime, arveldus‑ ja tarneaadressi, telefoninumbri ja kliendi märkuse tellimusele. See on vaikimisi väljas — need on isikuandmed, nii et lülita see sisse ainult siis, kui su kirjapõhi neid näitab. Väljad leiad jaotisest Kirjapõhja märgendid.
Kui Smailyni ei jõuta või see lükkab ostu kinnituskirja või tarne kinnituskirja korraks tagasi, käivitub varuvariandina automaatselt WooCommerce'i enda e‑kiri selle tellimuse jaoks — klient ei jää kunagi kinnituseta. Pidevalt ebaõnnestuvat saatmist proovitakse uuesti kuni umbes tund aega, enne kui see varuvariant käivitub, nii et pikem Smaily katkestus ei jäta klienti lõputult ootama. Katse jääb mõlemal juhul kirja su Event Log'i.
Kas kiri läheb välja? Olekurida
Igal kinnituskirja kaardil WooCommerce vahekaardil on olekurida, mis leitakse samade kontrollidega, mida plugin teeb enne iga saatmist. See nimetab esimese asja, mis kirja saatmist takistab:
- Tehingulised kirjad on välja lülitatud — pealüliti Connection vahekaardil on väljas.
- See kiri on välja lülitatud — kaardi enda lüliti on väljas.
- Töövoogu pole valitud — vali see kaardi menüüst.
- Valitud töövoog ei ole Smailys aktiivne — aktiveeri see Smailys või vali teine.
- Tehinguliste kirjade Smaily konto ühendus on poolik — kontrolli Connection vahekaardil alamdomeeni, kasutajanime ja parooli. Kui rida ütleb, et salvestatud parooli ei saa enam lugeda (nii juhtub, kui saidi turvavõtmed failis
wp-config.phpmuutuvad), sisesta parool seal uuesti.
Kui miski ei takista, näitab rida, millal kiri viimati saadeti (või et viimase 30 päeva jooksul pole midagi saadetud). Tarne kinnituskirja ja järelkirja kaart hoiatavad ka siis, kui viimase 30 päeva jooksul ei jõudnud ükski tellimus selle kirja jaoks märgitud staatusesse, ja loetlevad staatused, kuhu su hiljutised tellimused jõudsid — tavaliselt märk, et tellimuste täitmine kasutab kohandatud staatust, mis pole veel märgitud. Rida näitab salvestatud seadeid ja uueneb salvestamisel.
Kui Smaily töövoog käivitusi ei näita, on see normaalne. Need kirjad lähevad välja Smaily tehingulise saatmise kaudu: Smaily saadab valitud töövoo kirja kohe, üks kiri tellimuse kohta. Töövoog ise ei käivitu — selles seatud viivitused ja muud sammud ei kehti ning see ei näita käivitusi. Järelkirja puhul ootab plugin ise selle kaardil määratud arvu päevi. Saadetu leiad Event Log'ist.
Vahele jäetud read Event Log'is. Kui tellimus jõuab hetkeni, mil sisselülitatud kinnituskiri peaks välja minema (uus tellimus või märgitud staatus), aga see ei saa minna — töövoogu pole valitud, ühendus on poolik või tellimusel puudub arve e‑posti aadress —, lisandub Event Log'i rida märgisega vahele jäetud ja põhjusega. Rida sisaldab ainult tellimuse numbrit. Välja lülitatud kiri rida ei jäta. Vahele jäetud saatmine ei kuluta tellimuse ainsat kirja: kui põhjus on parandatud, läheb tarne kinnituskiri välja järgmine kord, kui tellimus jõuab märgitud staatusesse. Järelkiri jäetakse vahele ka siis, kui ooteaja lõppedes on tellimus tühistatud, tagastatud või ebaõnnestunud või pole enam märgitud olekus — see kulutab tellimuse järelkirja.
- Seotud töövoog peab olema ühe sektsiooniga — mitme sektsiooniga töövoog saadab kõik sektsioonid korraga, mis ei sobi ühekordse tehingu‑e‑kirja jaoks.
- Tellimuse kohta muutuv teemarida (nt tellimuse numbriga) peab olema töövoo malli sees liitmärgend (merge tag) — WordPressist teemarea ülekirjutamist saadetise kohta pole.
Merge tags in your email templatesKirjapõhja märgendid
These are the fields each email the plugin triggers carries. Use them in the Smaily template as merge tags, e.g. {{ first_name }} or {{ product_name_1 }}. A field whose value the plugin doesn't know is usually left out, not sent empty — a template should expect it may be missing.
Welcome
| Merge tag | Value |
|---|---|
store | Your store's address (site URL). |
first_name, last_name, nickname, user_phone, user_gender, birthday, customer_id, customer_group, first_registered, site_title | Only the fields ticked under Contacts → Fields to sync, and only when the customer has a value. |
welcome_automation_at | When this trigger fired (UTC, 2026-08-04 14:30:00). |
welcome_coupon_code | The shopper's single‑use discount code, when Send a discount code is on and a code was made. Left out otherwise, so the code an earlier email gave stays on the contact. |
welcome_coupon_expires_at | That code's last valid day, YYYY-MM-DD in your store's timezone (not UTC): the code works until the end of that day. |
First order
| Merge tag | Value |
|---|---|
order_id | WooCommerce's internal order ID. |
order_total | Order total as a plain number, tax included (24.90). |
order_currency | Currency code (EUR). |
first_order_automation_at | When this trigger fired (UTC). |
first_order_coupon_code | The shopper's single‑use discount code, when Send a discount code is on and a code was made. Left out otherwise, so the code an earlier email gave stays on the contact. |
first_order_coupon_expires_at | That code's last valid day, YYYY-MM-DD in your store's timezone (not UTC): the code works until the end of that day. |
Abandoned cart
| Merge tag | Value |
|---|---|
first_name, last_name | The shopper's name, when known. |
store | Your store's address (site URL). |
language | The shopper's language code (et, en…), when resolved. |
is_abandoned_cart | Always true. |
abandoned_cart_automation_at | When this trigger fired (UTC). |
abandoned_cart_coupon_code | The shopper's single‑use discount code, when Send a discount code is on and a code was made. Left out otherwise, so the code an earlier email gave stays on the contact. |
abandoned_cart_coupon_expires_at | That code's last valid day, YYYY-MM-DD in your store's timezone (not UTC): the code works until the end of that day. |
product_name_N, product_sku_N, product_quantity_N, product_description_N, product_image_url_N | One set per cart product, N = 1…10. Unused slots are sent empty. |
product_price_N | The product's current price, formatted with currency (the sale price while on sale). |
product_base_price_N | The product's regular price, formatted with currency. |
product_url_N | A plain link to the product's page (for a product sold in variations, with the variation in the cart selected) — the same tag as in the order and shipping confirmations. Empty when the product is no longer published. |
over_10_products | true when the cart holds more than 10 products, otherwise sent empty — so a smaller cart's reminder clears the flag a larger cart left on the contact. |
Elementor Pro forms
Written onto the contact by every signup through the Smaily action of an Elementor Pro form, so the workflow it starts — and any later email — can use them.
| Merge tag | Value |
|---|---|
name, and every field mapped under Other fields | What the visitor entered, only when the field is mapped and not empty. |
elementor_form_name | The form's name in Elementor. |
elementor_form_url | The page the form was sent from — only when that page is on your store's own domain; any other address is not saved. |
elementor_form_submitted_at | When the form was sent (UTC, 2026-08-04 14:30:00). |
Order confirmation, Shipping confirmation and Follow-up email
All three transactional emails carry the same fields.
| Merge tag | Value |
|---|---|
order_number | The order number the customer sees. |
order_total | Order total as charged, tax included, formatted with currency (24,90 €). |
currency | Currency code (EUR). |
payment_method, shipping_method | The payment and shipping method names. |
first_name, last_name | The billing name. |
product_name_N, product_sku_N, product_quantity_N, product_description_N, product_image_url_N | One set per ordered product, N = 1…10. Unused slots are sent empty. |
product_price_N | The unit price the customer paid, after discounts, tax included. |
product_base_price_N | The unit price before discounts, tax included. |
product_url_N | A plain link to the product's page (for a product sold in variations, with the options the customer bought selected). Empty when the product no longer exists. |
product_discount_percent_N | The coupon discount on that product as a whole‑number percent (10); 0 without a discount, empty on an unused slot. |
over_10_products | true only when the order has more than 10 products. |
order_subtotal, order_tax, order_shipping | The products after discounts, the tax, and the shipping (with its tax) — formatted with currency like order_total. |
order_total_raw, order_subtotal_raw, order_tax_raw, order_shipping_raw | The same four amounts as plain numbers, no currency sign (24.90). Free shipping is 0.00. |
order_status, order_status_id | The order status as your store shows it (Processing) and its code (processing). |
payment_method_id, shipping_method_id | The payment and shipping method codes (bacs, flat_rate). Several shipping methods are listed in the same order as in shipping_method. |
Only when Customer details is switched on — then every one of these is sent, empty when the order has no value (e.g. no delivery address on a pickup order):
| Merge tag | Value |
|---|---|
shipping_first_name, shipping_last_name | The delivery name. |
billing_address_1, billing_address_2, billing_postcode, billing_city, billing_country | The billing address; the country as its name. |
shipping_address_1, shipping_address_2, shipping_postcode, shipping_city, shipping_country | The delivery address; the country as its name. |
billing_phone | The phone number. |
customer_note | The note the customer wrote with the order. |
Moving an existing order‑confirmation template
- Map the fields. The names follow WooCommerce's own (
billing_city,payment_method…); each product has its own set ending in_1…_10, and order amounts start withorder_. - Test empty values the right way. Unused product slots are sent empty, not left out — test them with
{% if product_name_2 != "" %}(or{% if product_name_2 %}).over_10_productsis left out when there are 10 products or fewer, so test{% if over_10_products == "true" %}. - Don't add a currency sign.
order_total,product_price_Nand the other formatted amounts already carry it. To format money yourself, use the_rawfields. - If the template shows an address, the phone or the order note, switch on Customer details. Place a test order and check the email before switching WooCommerce's own email off.
For developers: two filters add your own fields. smaily_connect_transactional_email_fields ($fields, the order, and which email — order_confirmation, shipping_confirmation or follow_up) adds order‑level fields; smaily_connect_transactional_email_product_fields ($fields, the order line, the order) adds per‑product fields whose names start with product_ and get the _N ending. A built‑in field can't be overwritten; names are lowercase letters, digits and _ (up to 64); values are plain text or numbers, cut at 1,000 characters; at most 20 fields per filter. Anything else is skipped (logged when WP_DEBUG is on), and a filter that fails never stops the email.
The transactional emails carry no language field. On a multilingual store, map a separate workflow per language instead (see Transactional emails).
Siin on väljad, mis iga pluginast käivitatud e‑kirjaga kaasa lähevad. Kasuta neid Smaily kirjapõhjas märgenditena, nt {{ first_name }} või {{ product_name_1 }}. Välja, mille väärtust plugin ei tea, üldjuhul ei saadeta (mitte ei saadeta tühjana), nii et kirjapõhi peaks arvestama, et see võib puududa.
Welcome
| Märgend | Väärtus |
|---|---|
store | Su poe aadress (saidi URL). |
first_name, last_name, nickname, user_phone, user_gender, birthday, customer_id, customer_group, first_registered, site_title | Ainult väljad, mis on märgitud jaotises Kontaktid → Sünkroonitavad väljad, ja ainult siis, kui kliendil on väärtus olemas. |
welcome_automation_at | Päästiku käivitumise aeg (UTC, 2026-08-04 14:30:00). |
welcome_coupon_code | Ostleja ühekordne sooduskood, kui Send a discount code on sees ja kood loodi. Muidu ei saadeta, nii et varasema e‑kirja kood jääb kontaktile alles. |
welcome_coupon_expires_at | Selle koodi viimane kehtivuspäev, YYYY-MM-DD su poe ajavööndis (mitte UTC‑s): kood kehtib selle päeva lõpuni. |
First order
| Märgend | Väärtus |
|---|---|
order_id | WooCommerce'i sisemine tellimuse ID. |
order_total | Tellimuse kogusumma lihtsa arvuna, koos maksuga (24.90). |
order_currency | Valuutakood (EUR). |
first_order_automation_at | Päästiku käivitumise aeg (UTC). |
first_order_coupon_code | Ostleja ühekordne sooduskood, kui Send a discount code on sees ja kood loodi. Muidu ei saadeta, nii et varasema e‑kirja kood jääb kontaktile alles. |
first_order_coupon_expires_at | Selle koodi viimane kehtivuspäev, YYYY-MM-DD su poe ajavööndis (mitte UTC‑s): kood kehtib selle päeva lõpuni. |
Abandoned cart
| Märgend | Väärtus |
|---|---|
first_name, last_name | Ostleja nimi, kui see on teada. |
store | Su poe aadress (saidi URL). |
language | Ostleja keelekood (et, en…), kui see õnnestus tuvastada. |
is_abandoned_cart | Alati true. |
abandoned_cart_automation_at | Päästiku käivitumise aeg (UTC). |
abandoned_cart_coupon_code | Ostleja ühekordne sooduskood, kui Send a discount code on sees ja kood loodi. Muidu ei saadeta, nii et varasema e‑kirja kood jääb kontaktile alles. |
abandoned_cart_coupon_expires_at | Selle koodi viimane kehtivuspäev, YYYY-MM-DD su poe ajavööndis (mitte UTC‑s): kood kehtib selle päeva lõpuni. |
product_name_N, product_sku_N, product_quantity_N, product_description_N, product_image_url_N | Üks komplekt iga korvis oleva toote kohta, N = 1…10. Kasutamata kohad saadetakse tühjana. |
product_price_N | Toote praegune hind koos valuutaga (soodushinna ajal soodushind). |
product_base_price_N | Toote tavahind koos valuutaga. |
product_url_N | Lihtne link toote lehele (variatsioonidega toote puhul on valitud korvis olev variatsioon) — sama märgend nagu ostu kinnituskirjas ja tarne kinnituskirjas. Tühi, kui toode pole enam avaldatud. |
over_10_products | true, kui korvis on üle 10 toote, muidu saadetakse tühjana — nii kustutab väiksema korvi meeldetuletus kontaktilt suurema korvi jäetud märke. |
Elementor Pro vormid
Salvestatakse kontaktile iga liitumisega Elementor Pro vormi Smaily toimingu kaudu, nii et selle käivitatud töövoog — ja iga hilisem kiri — saab neid kasutada.
| Märgend | Väärtus |
|---|---|
name ja iga jaotises Muud väljad seotud väli | Külastaja sisestatud väärtus, ainult siis, kui väli on seotud ja pole tühi. |
elementor_form_name | Vormi nimi Elementoris. |
elementor_form_url | Leht, millelt vorm saadeti — ainult siis, kui see leht on sinu poe enda domeenil; muud aadressi ei salvestata. |
elementor_form_submitted_at | Vormi saatmise aeg (UTC, 2026-08-04 14:30:00). |
Ostu kinnituskiri, tarne kinnituskiri ja järelkiri
Kõigil kolmel tehingu‑e‑kirjal on samad väljad.
| Märgend | Väärtus |
|---|---|
order_number | Tellimuse number, mida klient näeb. |
order_total | Tasutud kogusumma koos maksuga ja valuutaga (24,90 €). |
currency | Valuutakood (EUR). |
payment_method, shipping_method | Makse‑ ja tarneviisi nimi. |
first_name, last_name | Arveldusaadressi nimi. |
product_name_N, product_sku_N, product_quantity_N, product_description_N, product_image_url_N | Üks komplekt iga tellitud toote kohta, N = 1…10. Kasutamata kohad saadetakse tühjana. |
product_price_N | Kliendi makstud ühikuhind pärast allahindlust, koos maksuga. |
product_base_price_N | Ühikuhind enne allahindlust, koos maksuga. |
product_url_N | Lihtne link toote lehele (variatsioonidega toote puhul on valitud kliendi ostetud variatsioon). Tühi, kui toodet enam ei ole. |
product_discount_percent_N | Kupongiga saadud allahindlus sellele tootele täisarvulise protsendina (10); 0, kui allahindlust pole, kasutamata kohal tühi. |
over_10_products | true ainult siis, kui tellimuses on üle 10 toote. |
order_subtotal, order_tax, order_shipping | Tooted pärast allahindlust, maks ja tarne (koos maksuga) — valuutaga vormindatud nagu order_total. |
order_total_raw, order_subtotal_raw, order_tax_raw, order_shipping_raw | Samad neli summat lihtsa arvuna, ilma valuutamärgita (24.90). Tasuta tarne on 0.00. |
order_status, order_status_id | Tellimuse staatus nii, nagu pood seda näitab (nt Processing), ja selle kood (processing). |
payment_method_id, shipping_method_id | Makse‑ ja tarneviisi kood (bacs, flat_rate). Mitu tarneviisi on samas järjekorras nagu väljal shipping_method. |
Ainult siis, kui Kliendi andmed on sisse lülitatud — siis saadetakse kõik need väljad, tühjana, kui tellimusel väärtust pole (nt kauplusest järeletulemisel tarneaadressi pole):
| Märgend | Väärtus |
|---|---|
shipping_first_name, shipping_last_name | Saaja nimi. |
billing_address_1, billing_address_2, billing_postcode, billing_city, billing_country | Arveldusaadress; riik nimena. |
shipping_address_1, shipping_address_2, shipping_postcode, shipping_city, shipping_country | Tarneaadress; riik nimena. |
billing_phone | Telefoninumber. |
customer_note | Kliendi märkus tellimusele. |
Olemasoleva ostu kinnituskirja põhja üleviimine
- Vii väljad vastavusse. Nimed järgivad WooCommerce'i enda nimesid (
billing_city,payment_method…); igal tootel on oma komplekt lõpuga_1…_10ja tellimuse summad algavadorder_. - Kontrolli tühje väärtusi õigesti. Kasutamata tootekohad saadetakse tühjana, mitte ei jäeta välja — kontrolli neid nii:
{% if product_name_2 != "" %}(või{% if product_name_2 %}).over_10_productsjäetakse välja, kui tooteid on 10 või vähem, nii et kontrolli{% if over_10_products == "true" %}. - Ära lisa valuutamärki.
order_total,product_price_Nja teised vormindatud summad sisaldavad seda juba. Kui tahad summasid ise vormindada, kasuta_rawvälju. - Kui kirjapõhi näitab aadressi, telefoni või tellimuse märkust, lülita sisse Kliendi andmed. Tee proovitellimus ja vaata kiri üle, enne kui WooCommerce'i enda kirja välja lülitad.
Arendajatele: kaks filtrit lisavad sinu enda välju. smaily_connect_transactional_email_fields ($fields, tellimus ja millise kirjaga on tegu — order_confirmation, shipping_confirmation või follow_up) lisab tellimuse taseme välju; smaily_connect_transactional_email_product_fields ($fields, tellimuse rida, tellimus) lisab tootepõhiseid välju, mille nimi algab product_ ja saab lõpu _N. Sisseehitatud välja üle kirjutada ei saa; nimes on väiketähed, numbrid ja _ (kuni 64); väärtus on tekst või arv, mis lõigatakse 1000 märgi juurest; filtri kohta kuni 20 välja. Muu jäetakse vahele (sisselülitatud WP_DEBUG korral logitakse) ja ebaõnnestuv filter ei peata kunagi kirja saatmist.
Tehingu‑e‑kirjadel keelevälja pole. Mitmekeelses poes määra selle asemel iga keele jaoks eraldi töövoog (vt Tehingu‑e‑kirjad).
Campaign IntelligenceCampaign Intelligence
When connected, this tab shows the connection (with Test and Disconnect) plus:
- Import existing data — seed history so recommendations have something to learn from (Products / Customers / Orders). Safe to re‑run. The Products (catalog) import starts on its own when you connect, with a Hold back button in the notice that appears (see Step 4); Customers and Orders start only when you press Import now.
- Browse tracking — captures product and category views to power "similar products" recommendations. Off by default; only runs when the visitor has granted marketing consent (see Step 4).
- Recommendation attribution — credits store purchases to the recommendation that drove them. It runs automatically once the engine is connected: when a shopper lands from a recommendation link, the plugin captures the attribution parameters and stamps them onto the resulting order. No consent gate and nothing to switch on. The capture happens both on the server and in the browser (a small script the plugin loads on your storefront), so it keeps working behind a page cache and with browse tracking switched off. A click on the Recommendations block is credited to the store, and a later email click to the email — the last click wins.
Test confirms the connection is healthy. Disconnect stops ingest and tells Campaign Intelligence that this connection ends; if your store has no other connection, Campaign Intelligence pauses the store (no recommendations, none of its automated emails) and keeps its data. Reconnecting needs a fresh setup link and ends the pause.
Kui ühendatud, näitab see vahekaart ühendust (koos Test ja Disconnect) ning lisaks:
- Import existing data — anna ajalugu, millest soovitused õppida saavad (Products / Customers / Orders). Kordamine on ohutu. Toodete (kataloogi) import käivitub ühendamisel iseenesest ja ilmuvas teates on nupp Peata import (vt 4. samm); Kliendid ja Tellimused käivituvad ainult siis, kui vajutad Impordi kohe.
- Browse tracking — jäädvustab toote‑ ja kategooria‑vaatamised, et toita "sarnaste toodete" soovitusi. Vaikimisi väljas; töötab ainult siis, kui külastaja on andnud turundusnõusoleku (vt 4. samm).
- Recommendation attribution — omistab poe ostud soovitusele, mis need tõi. See töötab automaatselt, niipea kui mootor on ühendatud: kui klient saabub soovituslingilt, jäädvustab plugin atribuutsiooni‑parameetrid ja märgib need tekkivale tellimusele. Nõusoleku‑väravat pole ja midagi pole sisse lülitada. Jäädvustamine toimub nii serveris kui ka brauseris (plugin laadib poe lehele väikese skripti), nii et see töötab ka lehecache'i taga ja siis, kui sirvimise jälgimine on välja lülitatud. Klikk soovituste plokil omistatakse poele ja hilisem e‑kirja klikk e‑kirjale — kehtib viimane klikk.
Test kinnitab, et ühendus on terve. Disconnect peatab andmevoo ja annab Campaign Intelligence'ile teada, et see ühendus lõpeb; kui su poel teist ühendust ei ole, paneb Campaign Intelligence poe pausile (soovitusi ei anta ja selle automaatseid e‑kirju ei saadeta) ning hoiab poe andmed alles. Taasühendamiseks on vaja uut seadistuslinki ja see lõpetab pausi.
IntegrationsIntegratsioonid
Storefront newsletter
Add the Smaily newsletter block to any page or widget area; signups land in your Smaily contacts automatically. The block sends each signup straight to Smaily, so the plugin's Welcome trigger doesn't see it: to welcome block signups, choose the workflow in the block's own settings. If you run Contact Form 7 or Elementor, a Smaily subscription field/widget is available in its editor.
Shortcode
For full control over placement, use the [smaily_connect_newsletter_form] shortcode in any post, page, or widget that supports shortcodes. It renders a simple subscription form (email, optional name) that posts directly to your Smaily account.
| Attribute | Meaning | Default |
|---|---|---|
success_url | Where the shopper is redirected after a successful signup. | Current page |
failure_url | Where the shopper is redirected if the signup fails. | Current page |
show_name | Adds a Name field to the form. | false |
autoresponder_id | Enrols the new contact into a specific Smaily workflow (find its id in Smaily). Leave it out to add the contact with no workflow. | (none) |
Example: [smaily_connect_newsletter_form autoresponder_id="123" show_name="1"]
Themes can override the markup by providing their own smaily/smaily-public-basic.php template.
Unlike the workflow dropdowns elsewhere in Settings, autoresponder_id here is typed in by hand — the plugin has no list to check it against. If that workflow is later disabled or deleted in Smaily, the form keeps rendering and submitting normally, but no automation fires. Nothing in WordPress flags this; check the workflow's status directly in Smaily.
Gutenberg block
In the WordPress page or post editor, open the block inserter and search "Smaily" — add the Smaily Sign-Up Form block anywhere in your content. Its Autoresponder dropdown lists the workflows of your connected Smaily account. Anyone who may edit content can use it: the Editor role and above, not just administrators — on an older plugin version the block stayed on its loading spinner for anyone who was not an administrator, and updating the plugin fixes that.
Landing page block
The Smaily Landing Page block embeds a landing page you built in Smaily into any WordPress page or post — no code, just the page's URL. In the page or post editor, open the block inserter, search "Smaily" and add the Smaily Landing Page block (it sits in the Widgets category). Open the block's Settings panel and paste the landing page's URL (it looks like https://youraccount.sendsmaily.net/landing-pages/…) — the page appears in the editor right away; Height and Width set the size of the embed. The block needs the plugin connected to a Smaily account — it reads your account address from there — and it accepts landing pages of that account only. Anyone who may edit content can use it: the Editor role and above, not just administrators.
"Please configure the plugin first." means the plugin is not connected to a Smaily account yet (see Step 1) — or, on an older plugin version, that you are not an administrator; updating the plugin fixes that case. "Invalid landing page URL!" means the address you pasted is not a landing page of your Smaily account — copy it from Smaily again. If the landing page shows in the editor but the published page is empty, or the block comes back as "Block contains unexpected or invalid content" when you reopen the post, you are on an older plugin version: on some sites WordPress removed the embed while saving. Update the plugin, then add the block again on the affected pages.
On a page builder — Elementor, and other page builders that replace the page content — the block never reaches the visitor, because the builder replaces the page content with its own. Use the shortcode instead, in any text element: [smaily_landing_page url="https://youraccount.sendsmaily.net/landing-pages/…/html/"]. height and width are optional and take pixels or a percentage — [smaily_landing_page url="…" height="600" width="100%"]. Like the block, it accepts landing pages of your own Smaily account only; anything else shows nothing at all. On Elementor you can also use the native Smaily Landing Page widget, in the Smaily category, which takes the same three fields.
Recommendations block
The Smaily Recommendations block shows a shopper the products Smaily currently recommends to them — the same products as in their Smaily emails — as product cards with an image, name, price and link. Put it where you want it: in the page or post editor, open the block inserter, search "Smaily" and add Smaily Recommendations (it sits in the Widgets category); on a page builder, or anywhere else shortcodes work, use [smaily_recommendations]. The plugin never places it anywhere on its own.
Who sees cards: a shopper who has accepted marketing cookies and is either logged in, or a returning guest — someone who came to your store from a Smaily email before, or who bought from your store as a guest after accepting marketing cookies. Consent is read through the WP Consent API, the same marketing category and the same rule as browse tracking (see Companion plugins): only a yes the shopper gave in a consent banner connected to the WP Consent API counts. Without it nothing is shown. The page loads without waiting for the recommendations, and the cards appear a moment after it has loaded.
It shows nothing at all — no message, no empty box — to any other visitor, when Campaign Intelligence is not connected, to a logged‑in shopper who opted out of profiling (Smaily applies a guest's opt‑out itself), and when Smaily has no recommendations for the shopper yet or does not answer within 10 seconds. Prices, stock and images come from your store, and a product your store no longer shows is left out. Each shopper's answer is kept for one hour, so a new recommendation can take up to an hour to show; when Smaily cannot answer, the store asks again for that shopper after 10 minutes. A purchase that follows a click on these cards is credited to the store, not to an email. Smaily finds a logged‑in shopper by their WordPress account, so after updating the plugin run Import existing data → Customers once (see Campaign Intelligence); until then most logged‑in shoppers see nothing.
The page that carries the block is the same for every visitor, so it can stay in your page cache. The cards are fetched separately for each shopper, and that answer tells every cache never to store it (Cache-Control: no-store, private).
Elementor widget
If you run Elementor, open its editor and look under the Smaily category in the widget panel: Smaily Opt-In Form adds a subscription form, Smaily Landing Page embeds a landing page of your Smaily account (URL, height, width). Both render exactly what their block counterparts do.
Elementor Pro forms
If you run Elementor Pro, its Form widget can send signups straight to Smaily through a Smaily action — see the step‑by‑step guide Connecting an Elementor Pro form to Smaily.
Classic Widget
Go to Appearance → Widgets and add the Smaily Classic Subscription Widget to any widget area.
Contact Form 7
If you run Contact Form 7, open a form and switch to the Smaily for Contact Form 7 tab to enable Smaily signup for that form.
Important: signing up again through the form marks a contact who unsubscribed from the newsletter earlier as a subscriber again.
Product RSS feed
A URL that loads store products into Smaily campaigns. The controls only shape the URL — nothing is saved. Adjust Product category, Limit (1–250) and Sort by, press Update URL, then copy the Feed URL into Smaily's template editor.
Poe uudiskiri
Lisa Smaily uudiskirja plokk mis tahes lehele või vidina‑alale; liitujad jõuavad automaatselt su Smaily kontaktidesse. Plokk saadab iga liitumise otse Smailysse, nii et plugina Welcome‑päästik seda ei näe: ploki kaudu liitujate tervitamiseks vali töövoog ploki enda seadetes. Kui kasutad Contact Form 7‑t või Elementorit, on selle redaktoris saadaval Smaily tellimis‑väli/vidin.
Lühikood (shortcode)
Täieliku paigutuskontrolli jaoks kasuta lühikoodi [smaily_connect_newsletter_form] mis tahes postituses, lehel või vidinas, mis lühikoode toetab. See kuvab lihtsa liitumisvormi (e‑post, valikuline nimi), mis saadab andmed otse su Smaily kontosse.
| Atribuut | Tähendus | Vaikeväärtus |
|---|---|---|
success_url | Kuhu klient suunatakse pärast õnnestunud liitumist. | Praegune leht |
failure_url | Kuhu klient suunatakse, kui liitumine ebaõnnestub. | Praegune leht |
show_name | Lisab vormile Nime välja. | false |
autoresponder_id | Lisab uue kontakti kindlasse Smaily töövoogu (id leiad Smailyst). Jäta ära, et kontakt lisataks ilma töövooga. | (puudub) |
Näide: [smaily_connect_newsletter_form autoresponder_id="123" show_name="1"]
Teemad saavad kujundust üle kirjutada, pakkudes oma smaily/smaily-public-basic.php malli.
Erinevalt mujal Settings'is olevatest töövoo‑rippmenüüdest sisestatakse autoresponder_id siin käsitsi — pluginal pole nimekirja, mille vastu seda kontrollida. Kui see töövoog hiljem Smailys keelatakse või kustutatakse, jätkab vorm tavapärast renderdamist ja esitamist, aga ühtegi automaatikat ei käivitu. WordPress ei märgi seda kuidagi — kontrolli töövoo olekut otse Smailyst.
Gutenbergi plokk
Ava WordPressi lehe või postituse redaktoris ploki lisamise aken ja otsi "Smaily" — lisa Smaily Sign-Up Form plokk oma sisu ükskõik millisesse kohta. Ploki rippmenüü Autoresponder loetleb ühendatud Smaily konto töövood. Plokki saab kasutada igaüks, kes tohib sisu muuta: Editor‑roll ja sellest kõrgemad, mitte ainult haldurid — vanema plugina‑versiooni puhul jäi plokk kõigile peale halduri lõputult laadima ja siis aitab plugina uuendamine.
Maandumislehe plokk
Plokk Smaily Landing Page lisab Smailys tehtud maandumislehe mis tahes WordPressi lehele või postitusse — koodi pole vaja, ainult lehe URL. Ava lehe või postituse redaktoris ploki lisamise aken, otsi "Smaily" ja lisa plokk Smaily Landing Page (see on kategoorias Vidinad). Ava ploki Settings paneel ja kleebi sinna maandumislehe URL (kujul https://sinukonto.sendsmaily.net/landing-pages/…) — leht ilmub kohe redaktorisse; Height ja Width määravad kuvatava lehe kõrguse ja laiuse. Plokk eeldab, et plugin on Smaily kontoga ühendatud — ta loeb sealt su konto aadressi — ja võtab vastu ainult selle konto maandumislehti. Plokki saab kasutada igaüks, kes tohib sisu muuta: Editor‑roll ja sellest kõrgemad, mitte ainult haldurid.
"Please configure the plugin first." tähendab, et plugin pole veel Smaily kontoga ühendatud (vt 1. samm) — või vanema plugina‑versiooni puhul seda, et sa pole haldur; siis aitab plugina uuendamine. "Invalid landing page URL!" tähendab, et kleebitud aadress ei ole sinu Smaily konto maandumisleht — kopeeri see Smailyst uuesti. Kui maandumisleht paistab redaktoris, aga avaldatud leht on tühi, või plokk näitab postitust uuesti avades teadet "Block contains unexpected or invalid content", on kasutusel vanem plugina‑versioon: mõnel saidil eemaldas WordPress salvestamisel lisatud lehe. Uuenda pluginat ja lisa plokk mõjutatud lehtedele uuesti.
Lehekoostajaga — Elementor ja muud lehekoostajad, mis asendavad lehe sisu — plokk külastajani ei jõua, sest koostaja asendab lehe sisu enda omaga. Kasuta selle asemel mis tahes tekstielemendis lühikoodi [smaily_landing_page url="https://sinukonto.sendsmaily.net/landing-pages/…/html/"]. height ja width on valikulised ning võtavad vastu nii piksleid kui protsente — [smaily_landing_page url="…" height="600" width="100%"]. Nagu plokk, võtab ka lühikood vastu ainult sinu enda Smaily konto maandumislehti; muu puhul ei kuvata midagi. Elementoris saad kasutada ka päris Smaily Landing Page vidinat Smaily kategoorias, millel on samad kolm välja.
Soovituste plokk
Plokk Smaily Recommendations näitab ostjale tooteid, mida Smaily talle praegu soovitab — samu tooteid, mis on tema Smaily e‑kirjades — tootekaartidena (pilt, nimi, hind ja link). Lisa see sinna, kuhu soovid: ava lehe või postituse redaktoris ploki lisamise aken, otsi "Smaily" ja lisa Smaily Recommendations (see on kategoorias Vidinad); lehekoostajas või mujal, kus lühikoodid töötavad, kasuta lühikoodi [smaily_recommendations]. Plugin ise seda kuhugi ei paiguta.
Kes kaarte näeb: ostja, kes on turundusküpsistega nõustunud ning on kas sisse logitud või naasev külaline — keegi, kes on varem Smaily e‑kirjast sinu poodi tulnud või turundusküpsistega nõustununa sinu poest külalisena ostnud. Nõusolekut loetakse WP Consent API kaudu, sama turunduskategooria ja sama reegli järgi nagu sirvimise jälgimisel (vt Kaaslas‑pluginad): arvesse läheb ainult "jah", mille ostja andis WP Consent API‑ga ühendatud nõusolekubänneris. Ilma selleta ei kuvata midagi. Leht laadib soovitusi ootamata ning kaardid ilmuvad hetk pärast lehe laadimist.
Plokk ei näita midagi — ei teadet ega tühja kasti — ühelegi teisele külastajale, kui Campaign Intelligence pole ühendatud, profileerimisest loobunud sisse logitud ostjale (külalise loobumist arvestab Smaily ise) ning siis, kui Smailyl pole ostjale veel soovitusi või kui vastus ei tule 10 sekundi jooksul. Hinnad, laoseis ja pildid tulevad sinu poest ning toodet, mida pood enam ei näita, ei kuvata. Iga ostja vastust hoitakse üks tund, seega võib uue soovituse ilmumiseks kuluda kuni tund; kui Smaily ei saa vastata, küsib pood selle ostja kohta uuesti 10 minuti pärast. Ost, mis järgneb klikile nendel kaartidel, omistatakse poele, mitte e‑kirjale. Smaily leiab sisse logitud ostja tema WordPressi konto järgi, seega käivita pärast plugina uuendamist üks kord Import existing data → Customers (vt Campaign Intelligence); seni ei näe enamik sisse logitud ostjaid midagi.
Ploki sisaldav leht on kõigile külastajatele sama, seega võib see jääda sinu lehecache'i. Kaardid küsitakse iga ostja jaoks eraldi ning see vastus annab igale cache'ile teada, et seda ei tohi salvestada (Cache-Control: no-store, private).
Elementori vidin
Kui kasutad Elementorit, ava selle redaktor ja vaata vidinate paneelil Smaily kategooriat: Smaily Opt-In Form lisab liitumisvormi, Smaily Landing Page lisab sinu Smaily konto maandumislehe (URL, kõrgus, laius). Mõlemad kuvavad täpselt sama, mida nende plokid.
Elementor Pro vormid
Kui kasutad Elementor Pro'd, saab selle vormividin saata liitujad otse Smailysse — vt samm-sammult juhendit Elementor Pro vormi ühendamine Smailyga.
Klassikaline vidin
Mine Väljanägemine → Vidinad ja lisa Smaily Classic Subscription Widget mõnda vidina‑alasse.
Contact Form 7
Kui kasutad Contact Form 7‑t, ava vorm ja lülitu vahekaardile Smaily for Contact Form 7, et lubada sellel vormil Smaily liitumine.
Oluline: vormi kaudu uuesti liitudes märgitakse ka varem uudiskirjast loobunud kontakt taas tellijaks.
Toodete RSS‑voog
URL, mis laadib poe tooted Smaily kampaaniatesse. Juhtnupud ainult kujundavad URL‑i — midagi ei salvestata. Sea Product category, Limit (1–250) ja Sort by, vajuta Update URL, seejärel kopeeri Feed URL Smaily malliredaktorisse.
Connecting an Elementor Pro form to SmailyElementor Pro vormi ühendamine Smailyga
Smaily Connect can connect Elementor Pro's own form to Smaily. The form's design, its consent fields and Elementor's spam protection stay in use — there is no need to rebuild the form in Contact Form 7.
Before you start
You need:
- an active Elementor Pro with its Forms module;
- Smaily Connect 3.16.0 or later;
- a connection to your Smaily account, set up and checked in Smaily Connect (see Step 1).
1. Add the Smaily action to the form
Open the page in the Elementor editor and select the Elementor Pro Form widget.
Open Actions After Submit and add the Smaily action. Keep the other actions you need, such as the email notification of a contact form.
A new Smaily section appears in the form's settings.
2. Choose the form type
The Mode setting has two options:
- Newsletter signup — a separate form for signing up to the newsletter. Every submission that passes validation is sent to Smaily.
- Contact form with marketing consent — a contact form with a separate marketing‑consent checkbox. The data is sent to Smaily only when that box is ticked.
For an ordinary contact form, use the second option.
3. Enter the form field IDs
Fields are matched by their ID, not by their visible label. You enter the IDs by hand.
To find an ID, open the field in the form settings and go to its Advanced tab. Copy the field's ID from there.
| Smaily setting | What to enter |
|---|---|
| Email field ID | The ID of the email field. The default is email, but check your form. |
| Name field ID | The ID of the name field; its value goes to the Smaily field name. Leave it empty if you don't collect a name. |
| Consent field ID | The ID of the marketing‑consent field. Required in contact‑form mode, and shown only in that mode. |
For example, your form's IDs could be email, name and newsletter_consent. Still, use the values set in your own form.
4. Set up the consent field of a contact form
Add an Acceptance or checkbox field to the Elementor form. For example:
I want to receive [company name] newsletters.
If visitors must be able to send the contact form without signing up to the newsletter, keep the marketing‑consent field optional and unticked by default.
Enter this field's ID in the Smaily setting Consent field ID.
When the box is not ticked, nothing is sent to Smaily, but the form's other actions still run.
5. Add other data and a workflow if you want
Other fields maps more form fields to Smaily fields. On each row, set the form field's ID (Form field ID) and the name of the matching Smaily field (Smaily field).
In the Smaily field name, use lowercase letters, digits and the underscore, up to 64 characters. A row whose name has any other character — a space, a hyphen, a letter such as ä — is skipped, and so is a row that names email, is_unsubscribed or one of the three source fields listed in step 7. Only the fields you set up are sent. An empty value is not sent, so the value already in Smaily stays.
Workflow lets you pick an active Smaily workflow to start after the signup, for example a welcome email. If you don't need one, leave it on No workflow — the contact is still saved.
6. Check the spam protection
reCAPTCHA is set up in Elementor's own form, not in the Smaily section. The Smaily action runs only after Elementor's validation and spam protection have passed. If needed, follow Elementor's reCAPTCHA guide.
7. Save and test
Save the page and try the form on the public page with your own test data.
Check:
- that the contact and the chosen fields reach Smaily;
- that the chosen workflow starts;
- that the contact form also works with the marketing consent unticked, without adding a new test contact to Smaily.
To test the workflow again, use another test address or wait at least five minutes: within that time, sending the same form again with the same email does not start the workflow again.
Check a successful signup and a started workflow separately.
Important: signing up again through this form marks a contact who unsubscribed from the newsletter earlier as a subscriber again.
Smaily also stores the form's name (elementor_form_name), the page address (elementor_form_url) and the time of the submission (elementor_form_submitted_at, UTC). The page address is saved only when the page is on your store's own domain. You can use these fields to see where a signup came from and to build segments (see Merge tags).
When something goes wrong
An invalid email address, or Smaily not answering, shows the visitor an error and the form can be sent again; when you are logged in as an editor, Elementor also shows you the technical reason. If the contact was saved but the workflow could not be started, the visitor sees success. The action uses the plugin's saved Smaily connection — no API credentials go into the form, and an exported form doesn't carry the workflow choice.
Smaily Connect võimaldab ühendada Elementor Pro enda vormi Smailyga. Vormi kujundus, nõusolekuväljad ja Elementori rämpspostikaitse jäävad kasutusse — vormi pole vaja Contact Form 7-ga uuesti ehitada.
Juhendis on Smaily seadete nimed nii, nagu need on ingliskeelses töölauas. Kui sinu WordPressi kasutajakonto keel on eesti, on need eesti keeles:
| Inglise keeles | Eesti keeles |
|---|---|
| Mode | Režiim |
| Newsletter signup | Uudiskirjaga liitumine |
| Contact form with marketing consent | Kontaktivorm turundusnõusolekuga |
| Email field ID | E-posti välja ID |
| Name field ID | Nime välja ID |
| Consent field ID | Nõusolekuvälja ID |
| Other fields | Muud väljad |
| Form field ID | Vormi välja ID |
| Smaily field | Smaily väli |
| Workflow | Töövoog |
| No workflow | Ilma töövoota |
Enne alustamist
Vajalikud on:
- aktiivne Elementor Pro koos vormimooduliga;
- Smaily Connect 3.16.0 või uuem;
- Smaily Connectis seadistatud ja kontrollitud ühendus Smaily kontoga (vt 1. samm).
1. Lisa vormile Smaily tegevus
Ava leht Elementori redaktoris ja vali Elementor Pro Form-widget.
Ava Actions After Submit ning lisa tegevus Smaily. Säilita teised vajalikud tegevused, näiteks kontaktivormi teate saatmine e-postiga.
Vormi seadetesse tekib uus Smaily sektsioon.
2. Vali vormi tüüp
Seadistuses Mode on kaks võimalust:
- Newsletter signup — eraldi uudiskirjaga liitumise vorm. Iga edukalt valideeritud esitus saadetakse Smailysse.
- Contact form with marketing consent — kontaktivorm, millel on eraldi turundusnõusoleku linnuke. Andmed saadetakse Smailysse ainult siis, kui see on märgitud.
Tavalise kontaktivormi puhul kasuta teist võimalust.
3. Sisesta vormiväljade ID-d
Väljad seotakse ID, mitte nähtava pealkirja järgi. ID-d tuleb sisestada käsitsi.
ID leidmiseks ava vormi seadetes vastav väli ja selle Advanced vahekaart. Kopeeri sealt välja ID.
| Smaily seadistus | Mida sisestada |
|---|---|
| Email field ID | E-posti välja ID. Vaikeväärtus on email, kuid kontrolli oma vormi. |
| Name field ID | Nimevälja ID. Nimi salvestatakse Smaily väljale name. Kui nime ei koguta, jäta tühjaks. |
| Consent field ID | Turundusnõusoleku välja ID. Vajalik kontaktivormi režiimis ja nähtav ainult selles režiimis. |
Näiteks võivad sinu vormi ID-d olla email, name ja newsletter_consent. Kasuta siiski oma vormis määratud väärtusi.
4. Seadista kontaktivormi nõusolekuväli
Lisa Elementori vormile Acceptance- või märkeruuduväli. Näiteks:
Soovin saada [ettevõtte nimi] uudiskirju.
Kui kontaktivormi peab saama saata ka uudiskirjaga liitumata, jäta turundusnõusoleku väli vabatahtlikuks ja vaikimisi märkimata.
Sisesta selle välja ID Smaily seadistusse Consent field ID.
Märkimata linnukese korral Smailysse andmeid ei saadeta, kuid vormi teised tegevused jätkuvad.
5. Lisa soovi korral muud andmed ja automatsioon
Other fields võimaldab siduda täiendavaid vormivälju Smaily väljadega. Iga rea juures määra vormivälja ID (Form field ID) ja vastav Smaily välja nimi (Smaily field).
Smaily välja nimes kasuta väiketähti, numbreid ja alakriipsu, kokku kuni 64 märki. Rida, mille nimes on mõni muu märk — tühik, sidekriips või näiteks täht ä —, jäetakse vahele, samuti rida, mille nimi on email, is_unsubscribed või mõni 7. sammus nimetatud allikaväli. Edastatakse ainult seadistatud väljad. Tühja väärtusega välja ei saadeta, nii et Smailys olemasolev väärtus jääb alles.
Workflow võimaldab valida pärast liitumist käivitatava aktiivse Smaily automatsiooni, näiteks tervituskirja. Kui automatsiooni pole vaja, jäta valikuks No workflow — kontakt salvestatakse siiski.
6. Kontrolli rämpspostikaitset
reCAPTCHA seadistatakse Elementori enda vormis, mitte Smaily sektsioonis. Smaily ühendus kasutab Elementori valideerimist ja rämpspostikaitset. Vajadusel järgi Elementori reCAPTCHA juhendit.
7. Salvesta ja testi
Salvesta leht ning katseta vormi avalikul lehel enda testandmetega.
Kontrolli:
- kas kontakt ja valitud väljad jõuavad Smailysse;
- kas valitud automatsioon käivitub;
- kas kontaktivorm töötab ka märkimata turundusnõusolekuga, ilma uut testkontakti Smailysse lisamata.
Automatsiooni kordustesti jaoks kasuta teist testaadressi või oota vähemalt viis minutit: sama vormi ja e-posti kordusesitus ei käivita selle aja jooksul automatsiooni uuesti.
Liitumise õnnestumine ja automatsiooni käivitumine tuleb kontrollida eraldi.
Oluline: selle vormi kaudu uuesti liitudes märgitakse ka varem uudiskirjast loobunud kontakt taas tellijaks.
Smailysse salvestatakse lisaks vormi nimi (elementor_form_name), lehe aadress (elementor_form_url) ja esitamise aeg (elementor_form_submitted_at, UTC). Lehe aadress salvestatakse ainult siis, kui leht on sinu poe enda domeenil. Neid saab kasutada liitumise allika tuvastamiseks ja segmentimiseks (vt Kirjapõhja märgendid).
Kui midagi läheb valesti
Vigase e-posti aadressi või Smaily vastamata jätmise korral näeb külastaja veateadet ja saab vormi uuesti saata; kui oled toimetajana sisse logitud, näitab Elementor sulle ka tehnilist põhjust. Kui kontakt salvestati, aga töövoogu ei õnnestunud käivitada, näeb külastaja õnnestumist. Toiming kasutab plugina salvestatud Smaily ühendust — API-võtmeid vormi ei lähe ja eksporditud vorm töövoo valikut kaasa ei võta.
Importing existing dataOlemasolevate andmete import
Imports (also called backfills) seed your existing data so sync and recommendations have history to work from. Impordid (ehk backfill'id) toovad su olemasolevad andmed sisse, et sünkimisel ja soovitustel oleks ajalugu, millega töötada.
What gets importedMida imporditakse
There are four imports:
- Contacts → your Smaily contact list (from Contacts).
- Products, Customers, Orders → Campaign Intelligence (from Campaign Intelligence).
Each is a one‑time bulk import that runs in the background — you can leave the page and it keeps going. It is safe to re‑run: duplicates are impossible by design, because every record carries a stable id. Start the Contacts import with Start import, and the Products, Customers and Orders imports with Import now — the same button runs an import again.
The Products import is the one exception to "you start it": connecting Campaign Intelligence starts it for you, and you can hold it back from the notice before anything is sent (see Step 4).
The Orders import brings in your whole order history — there is no 60‑day or any other cutoff. It counts only real sales: draft, pending, failed and trashed orders are skipped (they aren't sales), and a custom shipping status like "shipped" still counts.
Importe on neli:
- Contacts → su Smaily kontaktinimekiri (jaotisest Kontaktid).
- Products, Customers, Orders → Campaign Intelligence (jaotisest Campaign Intelligence).
Iga import on ühekordne masssiire, mis käib taustal — võid lehelt lahkuda ja see jätkab. Kordamine on ohutu: duplikaadid on disaini poolest võimatud, sest iga kirje kannab stabiilset id'd. Contacts impordi käivitad nupuga Alusta importi, Products, Customers ja Orders impordid nupuga Impordi kohe — sama nupp käivitab impordi ka uuesti.
Products import on erand reeglist "sina käivitad": Campaign Intelligence'i ühendamine käivitab selle sinu eest ja teatest saad selle peatada enne, kui midagi saadetakse (vt 4. samm).
Tellimuste import toob sisse su kogu tellimuste ajaloo — 60‑päeva ega muud lõikepiiri pole. See loeb ainult päris müügid: mustand‑, ootel, ebaõnnestunud ja prügikasti‑tellimused jäetakse vahele (need pole müügid), aga kohandatud tarnestaatus nagu "shipped" loeb ikka.
Reading the progressEdenemise lugemine
While it runs, the Contacts import's button reads Running… and the line under the bar Checked N of M contacts — N contacts synced.; a Products, Customers or Orders import's button reads Importing… and the line Synced N products · P% complete (customers or orders for the other two). The synced number counts records the destination actually accepted, not just records read. When the import ends, the status line means:
| Status | Meaning |
|---|---|
| Done — N contacts synced (M contacts checked). | Contacts import: finished. N is the contacts of your sync audience that are up to date in Smaily; M is every store user checked, including the ones outside your sync audience. |
| Done — N products synced. | Products, Customers or Orders import (customers or orders for the other two): finished. |
| Nothing to import — no contacts match your synchronization settings. | Contacts import only: nobody on the store is in your sync audience, so there was nothing to send. The run finishes immediately. Check the switch and the mode under Contacts. |
| Backfill failed: reason | The import stopped on an error. The reason after the colon is Smaily's answer when Smaily refused the request, otherwise the error and where it happened. Press Start import (Contacts) or Import now (Products, Customers, Orders) again to retry; a Contacts retry sends every contact again from the first one. |
| Backfill cancelled. Re-run when ready. | You cancelled it. The same button starts it again. |
When Smaily refuses one customer for good — for example an email address Smaily does not accept — the Contacts import skips that customer and carries on with the rest. The panel then says Smaily refused N customers, so they were not imported. and lists up to 20 of them as User ID (first letter of the address and its domain): Smaily's reason, each linking to the user's profile. Fix the customer's details and press Start import again. If Smaily refuses every customer in a batch the import sends, the problem is not one customer, and the import stops with Backfill failed:.
If the engine rejected some records, a Products, Customers or Orders import also shows N records failed to sync — see the Event Log for details. Open the Event Log to see exactly which records and why (see Failed events & retry).
An import that stops on an error, or that has nothing driving it any more (for example after the plugin was deactivated during the import), shows Backfill failed: — in the second case with the reason The import stopped running in the background.; Start import (Contacts) or Import now (Products, Customers, Orders) runs it again. A Contacts import that stopped either way also starts again on its own with the next once-a-day contact sync.
Töö ajal on Contacts impordi nupul Töötab… ja edenemisriba all rida N kontakti M-st kontrollitud — N kontakti imporditud.; Products, Customers või Orders impordi nupul on Impordin… ja rida Sünkroonitud N tooted · P% valmis (teistel kahel kliendid või tellimused). Sünkroonitud arv loeb kirjeid, mille sihtkoht päriselt vastu võttis, mitte lihtsalt loetud kirjeid. Impordi lõppedes tähendab olekurida:
| Olek | Tähendus |
|---|---|
| Valmis — N kontakti imporditud (M kontakti kontrollitud). | Kontaktide import: lõpetatud. N on sinu sünkroniseerimise sihtrühma kontaktid, mis on Smailys ajakohased; M on kõik kontrollitud poe kasutajad, ka need, kes sinu sünkroniseerimise sihtrühma ei kuulu. |
| Valmis — sünkroonitud N tooted. | Products, Customers või Orders import (teistel kahel kliendid või tellimused): lõpetatud. |
| Pole midagi importida — ükski kontakt ei vasta sinu sünkroniseerimise seadetele. | Ainult kontaktide import: ükski poe kasutaja ei kuulu sinu sünkroniseerimise sihtrühma, seega polnud midagi saata. Import lõpeb kohe. Kontrolli lülitit ja režiimi jaotises Kontaktid. |
| Import ebaõnnestus: põhjus | Import peatus vea tõttu. Koolonile järgnev põhjus on Smaily vastus, kui Smaily päringu tagasi lükkas, muul juhul viga ja koht, kus see tekkis. Uuesti proovimiseks vajuta uuesti Alusta importi (Contacts) või Impordi kohe (Products, Customers, Orders); kontaktide import saadab kordamisel kõik kontaktid uuesti, alates esimesest. |
| Import tühistatud. Käivita uuesti, kui valmis. | Sina katkestasid. Sama nupp käivitab selle uuesti. |
Kui Smaily lükkab ühe kliendi lõplikult tagasi — näiteks e-posti aadressi, mida Smaily ei aktsepteeri —, jätab kontaktide import selle kliendi vahele ja jätkab ülejäänutega. Paneel näitab siis rida Smaily lükkas tagasi N klienti, seetõttu neid ei imporditud. ja loetleb neist kuni 20 kujul Kasutaja ID (aadressi esimene täht ja domeen): Smaily põhjus, igaüks lingiga kasutaja profiilile. Paranda kliendi andmed ja vajuta uuesti Alusta importi. Kui Smaily lükkab tagasi kõik kliendid, mille import ühes partiis saadab, pole probleem ühes kliendis ja import peatub teatega Import ebaõnnestus:.
Kui mootor mõne kirje tagasi lükkas, näitab Products, Customers või Orders import ka rida N kirjet ei sünkroonitud — vaata üksikasju sündmuste logist. Ava sündmuste logi, et näha, millised kirjed täpselt ja miks (vt Ebaõnnestunud sündmused & kordus).
Import, mis peatub vea tõttu või mida miski enam edasi ei vii (näiteks kui plugin impordi ajal deaktiveeriti), näitab Import ebaõnnestus: — teisel juhul põhjusega Import lakkas taustal töötamast.; Alusta importi (Contacts) või Impordi kohe (Products, Customers, Orders) käivitab selle uuesti. Kontaktide import, mis peatus kummalgi viisil, käivitub ka ise uuesti järgmise igapäevase kontaktide sünkroonimisega.
Error messages & fixesVeateated & lahendused
Almost everything is diagnosable from Settings → Event Log. Here are the messages you might meet and what each means. Peaaegu kõik on diagnoositav jaotisest Settings → Event Log. Siin on teated, mida võid kohata, ja mida iga tähendab.
Smaily connection errorsSmaily ühenduse vead
- Smaily rejected these credentials (401) — the subdomain, username or password is wrong. Double‑check them in Smaily under Settings → API.
- This account's package does not include API access (403) — the Smaily account is on a package without the API, so every request is refused whatever the credentials are. Upgrade the package in Smaily; the plugin picks the connection back up on its own, with nothing to re‑enter. Waiting does not help — this is not an outage.
- Could not reach Smaily — a temporary network issue, or your server can't reach Smaily over HTTPS. Try again.
- All three fields are required / Subdomain may contain only letters, numbers and dashes — fix the input and retry.
- Smaily rejected these credentials (401) — alamdomeen, kasutajanimi või parool on vale. Kontrolli üle Smailys jaotises Settings → API.
- This account's package does not include API access (403) — Smaily konto pakett ei sisalda API‑t, seega keeldutakse igast päringust olenemata sellest, kas kontoandmed on õiged. Uuenda Smailys paketti; plugin taastab ühenduse ise ja midagi pole vaja uuesti sisestada. Ootamine ei aita — tegemist pole katkestusega.
- Could not reach Smaily — ajutine võrgutõrge või su server ei jõua Smailyni HTTPS kaudu. Proovi uuesti.
- All three fields are required / Subdomain may contain only letters, numbers and dashes — paranda sisend ja proovi uuesti.
Campaign Intelligence errorsCampaign Intelligence vead
- This setup link was already used — setup links are one‑time. Ask Smaily for a fresh one.
- Setup link not recognized — check you pasted the full URL. The plugin accepts only a link that starts with
https://intelligence.smaily.com/setup/; a link to any other address is refused before anything is sent, so copy it again from your Smaily account. - Campaign Intelligence did not respond — try Test again shortly; if it persists, contact support.
- Campaign Intelligence rejected the stored API key — the key was revoked or rotated. Disconnect, reconnect with a fresh setup link, then return.
- Product rejected — missing SKU — the engine keys products on SKU. Products with no SKU are given a synthetic one automatically, but if a row still fails, add a SKU to the product and retry.
- This setup link was already used — seadistuslingid on ühekordsed. Küsi Smailyst uus.
- Setup link not recognized — kontrolli, et kleepisid terve URL‑i. Plugin võtab vastu ainult lingi, mis algab aadressiga
https://intelligence.smaily.com/setup/; mis tahes muule aadressile viiv link lükatakse tagasi enne, kui midagi saadetakse, seega kopeeri see uuesti oma Smaily kontolt. - Campaign Intelligence did not respond — proovi peagi uuesti Test; kui püsib, võta ühendust toega.
- Campaign Intelligence rejected the stored API key — võti tühistati või vahetati. Tee Disconnect, ühenda uuesti värske seadistuslingiga ja tule tagasi.
- Product rejected — missing SKU — mootor võtmestab tooted SKU järgi. SKU‑ta tooted saavad automaatselt sünteetilise, aga kui rida ikka ebaõnnestub, lisa tootele SKU ja proovi uuesti.
Companion plugins & permissionsKaaslas‑pluginad & õigused
Two optional features rely on other free plugins being present. If a feature seems to do nothing, this is usually why.
- Browse tracking collects nothing — browse events are gated on the WP Consent API. If your store has no consent framework,
wp_has_consent()is undefined and the plugin fails closed (zero events, no error). Install the free WP Consent API plugin; most consent banners register into it — CookieYes, Complianz and Real Cookie Banner all do (map their marketing/advertising category to the WP Consent APImarketingcategory). Turn on the banner's WP Consent API setting if it has one. Only the shopper's explicit yes counts: the consent banner must be connected to the WP Consent API and must have stored the shopper's yes for marketing. With no such banner, before the shopper answers, or after a no, nothing is sent and no recommendations are shown — also where the banner treats silence as consent. Smaily Connect shows an admin notice when browse tracking is on and connected but the WP Consent API plugin is not installed. - Multilingual routing — per‑language contact routing reads languages from WPML, Polylang or TranslatePress. Without one of them, the site locale is used.
How consent works in each setup
Three features wait for the shopper's marketing consent: browse tracking, the Recommendations block, and the visitor token a guest buyer gets at checkout. All three use the same rule: the WP Consent API must have stored allow for the marketing category. A consent banner stores it when the shopper says yes.
- No WP Consent API and no banner — none of the three runs. The line under the browse‑tracking toggle says so. While browse tracking is on, an admin notice says so too.
- WP Consent API installed, but no banner records choices through it — none of the three runs, because no consent is ever stored. The admin notice cannot detect this case: the server cannot tell it apart from a banner that works only in the browser. Only the line under the browse‑tracking toggle reminds you that a yes in a connected banner is needed. This changed in this version: earlier versions tracked browsing on such a store.
- WP Consent API and a connected banner (for example CookieYes or Complianz) — when the shopper says yes to marketing, all three run: browse tracking and the Recommendations block start on the same page, and the visitor token is created at checkout. If the shopper refuses or does not answer, none of them runs. A logged‑in shopper who turned off personalised recommendations under My Account gets no recommendations, even with consent.
- Outside the EU — the plugin does not look at the visitor's location. It counts only a stored
allowfor themarketingcategory. If your banner storesallowby default in an opt‑out region, all three run. If the banner only treats the visitor as allowed without storing a choice, none of them runs. This is stricter than some regions require; you can set up your banner to record consent there.
Not affected by this consent:
- Email‑link attribution — it is functional and always runs. The visitor token from a Smaily email link is stored, but the Recommendations block uses it only with consent.
- Contact sync to Smaily — it follows your consent preset (see Contacts).
- Automated emails — they have their own settings.
- Orders and customers sent to Campaign Intelligence — they always sync. Smaily applies a shopper's profiling objection.
Unlike an app‑store app, there are no OAuth permission prompts to approve. What a WordPress feature needs is either a capability you already have as an admin, or a companion plugin like the ones above.
Kaks valikulist funktsiooni sõltuvad teiste tasuta pluginate olemasolust. Kui mõni funktsioon näib mitte midagi tegevat, on tavaliselt põhjus siin.
- Sirvimise jälgimine ei kogu midagi — sirvimissündmused on WP Consent API väraval. Kui su poel pole nõusoleku‑raamistikku, on
wp_has_consent()defineerimata ja plugin jääb fail‑closed (null sündmust, viga ei kuva). Paigalda tasuta WP Consent API plugin; enamik nõusoleku‑bännereid registreerib sinna — CookieYes, Complianz ja Real Cookie Banner kõik teevad (seo nende turunduse/reklaami kategooria WP Consent APImarketing‑kategooriaga). Kui bänneril on WP Consent API seadistus, lülita see sisse. Arvesse läheb ainult ostja selgesõnaline "jah": nõusolekubänner peab olema WP Consent API‑ga ühendatud ja olema salvestanud ostja turundusele antud "jah". Sellise bännerita, enne kui ostja on vastanud, või pärast "ei"‑d ei saadeta midagi ega näidata soovitusi — ka seal, kus bänner loeb vaikimisi nõusolekuks. Smaily Connect näitab haldusteadet, kui sirvimise jälgimine on sees ja ühendatud, aga WP Consent API pluginat pole paigaldatud. - Mitmekeelne suunamine — keelepõhine kontakti‑suunamine loeb keeled WPML‑ist, Polylangist või TranslatePressist. Kui ühtki neist pole, kasutatakse saidi lokaati.
Kuidas nõusolek eri seadistustes toimib
Kolm funktsiooni ootavad ostja turundusnõusolekut: sirvimise jälgimine, soovituste plokk ja külastaja‑token, mille külalisostja kassas saab. Kõigil kolmel on sama reegel: WP Consent API peab olema salvestanud kategooriale marketing väärtuse allow. Nõusolekubänner salvestab selle, kui ostja ütleb "jah".
- WP Consent API puudub ja bännerit pole — ükski kolmest ei tööta. Seda ütleb sirvimise jälgimise lüliti all olev rida. Kui sirvimise jälgimine on sees, ütleb seda ka haldusteade.
- WP Consent API on paigaldatud, aga ükski bänner ei salvesta valikuid selle kaudu — ükski kolmest ei tööta, sest nõusolekut ei salvestata kunagi. Haldusteade ei suuda seda olukorda tuvastada: server ei erista seda bännerist, mis töötab ainult brauseris. Ainult sirvimise jälgimise lüliti all olev rida tuletab meelde, et vaja on "jah"‑i ühendatud bänneris. See muutus selles versioonis: varasemad versioonid jälgisid sellises poes sirvimist.
- WP Consent API ja ühendatud bänner (näiteks CookieYes või Complianz) — kui ostja ütleb turundusele "jah", töötavad kõik kolm: sirvimise jälgimine ja soovituste plokk käivituvad samal lehel ning külastaja‑token luuakse kassas. Kui ostja keeldub või ei vasta, ei tööta ükski. Sisseloginud ostja, kes on My Account all personaalsed soovitused välja lülitanud, ei saa soovitusi ka nõusolekuga.
- Väljaspool ELi — plugin ei vaata külastaja asukohta. Arvesse läheb ainult kategooriale
marketingsalvestatudallow. Kui su bänner salvestab opt‑out piirkonnas vaikimisiallow, töötavad kõik kolm. Kui bänner ainult käsitleb külastajat lubatuna, aga valikut ei salvesta, ei tööta ükski. See on rangem, kui mõni piirkond nõuab; saad bänneri seadistada nõusolekut seal salvestama.
Seda nõusolekut ei vaja:
- E‑kirja lingi atributsioon — see on funktsionaalne ja töötab alati. Smaily e‑kirja lingist tulnud külastaja‑token salvestatakse, aga soovituste plokk kasutab seda ainult nõusolekuga.
- Kontaktide sünkroonimine Smailysse — see järgib sinu nõusoleku eelseadistust (vt Kontaktid).
- Automaatsed e‑kirjad — neil on oma seaded.
- Campaign Intelligence'isse saadetavad tellimused ja kliendid — need sünkivad alati. Ostja profileerimise vastuväidet rakendab Smaily.
Erinevalt äpipoe‑rakendusest pole siin OAuth‑õiguste heakskiitmise viipasid. WordPressi funktsioon vajab kas võimekust, mis sul haldurina juba on, või kaaslas‑pluginat nagu ülal.
Failed events & retryEbaõnnestunud sündmused & kordus
The Event Log lists what the plugin sent and any failures. Each row shows a status — pending, sent or failed — and Details opens the exact request that was sent and the engine's response. A row that reads cancelled was withdrawn before it went out: an abandoned-cart reminder the shopper's purchase overtook. A row that reads skipped was finished without sending anything: an order or shipping confirmation that could not go out, where the row says why (see Transactional emails), an abandoned‑cart reminder your contact sync mode does not allow, where the row says why (see Automations), or a record that had nothing to send, for example an order that is no longer a sale. The Sent filter leaves skipped and cancelled rows out; choose All statuses to see them. A row that reads scheduled is a follow-up email waiting for its delay; the row says when it will be sent.
- Open Settings → Event Log and set the Status filter to Failed (or click View only failed in the red banner).
- Read the Last error column.
http_4xx/d6_item_errormeans the record was rejected (fix the record);http_5xxor a timeout is a temporary outage (a retry usually succeeds). On a Smaily send,permanent_http_401(or 403 / 404 / 422) means Smaily refused it in a way a retry can't fix — check the account credentials or the mapped workflow first, and note thatpermanent_http_403 … (Smaily code 227)means the account's package does not include API access;permanent_envelope_203means Smaily answered "invalid data" — the same data would be rejected again, so fix the contact or the email's fields before retrying; any otherpermanent_envelope_<code>carries Smaily's own answer for that code (for example 221: the workflow is missing, disabled or out of credit) — fix what it names before retrying;retry_limit_exceededmeans it was retried five times over several hours and then given up on. - Click Retry on a single row, or Retry all failed in the banner. The row flips to pending, then sent within about a minute.
A failed order or shipping confirmation offers no Retry when the customer already received WooCommerce's own email as the fallback — Details says so, and retrying would only send a second confirmation. It stays retryable in the one case where nothing reached the customer: a shipping confirmation on a shipped status of your own, which WooCommerce has no email for.
An order or shipping confirmation goes out once per order: moving an order out of a shipped status and back into it never sends a second one. When you deliberately want another — a corrected tracking number, say — find the row that was sent and click Send again. It asks you to confirm, then queues a fresh confirmation built from the order as it is now; it goes out at the next scheduled pass, within about a minute, and appears in the log as its own new row. If that second confirmation itself fails, it offers no Retry — nothing went out for it, and the confirmation the customer already has still stands. Send again is offered only on a confirmation Smaily itself sent — never on a failed row, and never on one WooCommerce's own email covered.
If the plugin turns a Retry or a Send again down — because transactional emails were switched off after the send, say — the banner tells you the reason in plain words rather than showing a technical error.
A periodic health check raises a red admin notice when something needs attention — e.g. "N sync events failed in the last 24 hours", or that the recommendation engine or the Smaily API has been unreachable for over an hour. When Smaily refuses for a reason it states outright — the account's package does not include the API, or the saved credentials are rejected — the notice says so instead, and appears at the next check rather than after an hour, because waiting cannot change that answer. Each notice links to the Event Log and clears itself once the problem is gone.
If Smaily deactivates your Campaign Intelligence account, the plugin is told so the first time it tries to send, and a red admin notice says it plainly. Sending then stops immediately — product, customer and order syncing, imports, browsing telemetry and the engine automations all pause, so the site is not spending requests on an account that will refuse them. Nothing is lost: everything waiting in the queue stays there, and your data on the Smaily side is untouched. Only Smaily can reactivate the account — the plugin cannot bring it back on its own, so contact Smaily rather than re-running the wizard. Once the account is active again, open Settings → Campaign Intelligence, click Disconnect and connect it with a fresh setup link; syncing resumes from where it stopped. Contact sync and the Smaily email automations are a separate connection and keep running throughout.
Note: a failed row stays retryable for 90 days, so there is no rush — and a Smaily contact send that keeps failing is retried a few times with growing gaps before it lands in failed, rather than being repeated every minute forever.
Sündmuste logi loetleb, mida plugin saatis, ja iga tõrke. Iga rida näitab olekut — pending, sent või failed — ja Üksikasjad avab täpse saadetud päringu ning mootori vastuse. Rida olekuga tühistatud võeti enne väljasaatmist tagasi: ostukorvi meeldetuletus, millest kliendi ost ette jõudis. Rida olekuga vahele jäetud lõpetati ilma midagi saatmata: see on ostu kinnituskiri või tarne kinnituskiri, mis ei saanud välja minna, ja rida ütleb, miks (vt Tehingu‑e‑kirjad), pooleli jäänud korvi meeldetuletus, mida su kontaktide sünkroonimise režiim ei luba, ja rida ütleb, miks (vt Automaatikad), või kirje, millel polnud midagi saata, näiteks tellimus, mis pole enam müük. Filter Saadetud jätab vahele jäetud ja tühistatud read välja; nende nägemiseks vali Kõik olekud. Rida olekuga ajastatud on järelkiri, mis ootab oma ooteaja lõppu; rida ütleb, millal see saadetakse.
- Ava Settings → Event Log ja sea Status‑filter Failed peale (või klõpsa punases bänneris View only failed).
- Loe Last error veergu.
http_4xx/d6_item_errortähendab, et kirje lükati tagasi (paranda kirje);http_5xxvõi ajaületus on ajutine katkestus (kordus tavaliselt õnnestub). Smaily saadetise puhul tähendabpermanent_http_401(või 403 / 404 / 422), et Smaily keeldus viisil, mida kordus ei paranda — kontrolli esmalt konto andmeid või seotud automaatikat, ja pane tähele, etpermanent_http_403 … (Smaily code 227)tähendab, et konto pakett ei sisalda API-ligipääsu;permanent_envelope_203tähendab, et Smaily vastas „vigased andmed“ — samad andmed lükataks uuesti tagasi, nii et paranda enne kordust kontakti või e‑kirja välju; muupermanent_envelope_<code>kannab Smaily enda vastust sellele koodile (näiteks 221: automaatikat pole, see on välja lülitatud või krediit on otsas) — paranda enne kordust see, mida vastus nimetab;retry_limit_exceededtähendab, et seda prooviti mitme tunni jooksul viis korda ja siis loobuti. - Klõpsa üksikul real Retry või bänneris Retry all failed. Rida läheb pending peale, siis umbes minutiga sent.
Ebaõnnestunud tellimuse või saatmise kinnitusel ei ole Retry nuppu, kui klient sai varuvariandina juba WooCommerce'i enda e‑kirja — Details ütleb seda ja kordus saadaks vaid teise kinnituse. Kordus jääb alles ainult juhul, kui klient ei saanud midagi: saatmise kinnitus sinu enda saadetud‑oleku peal, mille jaoks WooCommerce'il e‑kirja ei ole.
Tellimuse või saatmise kinnitus läheb välja üks kord tellimuse kohta: tellimuse saadetud‑olekust välja ja tagasi liigutamine teist kinnitust ei saada. Kui soovid teadlikult veel ühte — näiteks parandatud jälgimisnumbriga — otsi üles rida olekus sent ja klõpsa Send again. See küsib kinnitust ja paneb järjekorda uue kinnituse, mis on koostatud tellimuse praeguse seisu põhjal; see läheb välja järgmisel plaanipärasel saatmisringil, umbes minuti jooksul, ja ilmub logisse omaette uue reana. Kui see teine kinnitus ise ebaõnnestub, ei ole sellel Retry nuppu — selle eest ei läinud midagi välja ja kliendil juba olemas olev kinnitus jääb kehtima. Send again on ainult kinnitusel, mille saatis Smaily ise — mitte kunagi ebaõnnestunud real ega sellel, mille kattis WooCommerce'i enda e‑kiri.
Kui plugin lükkab Retry või Send again tagasi — näiteks kui tehingukirjad lülitati pärast saatmist välja —, ütleb bänner põhjuse tavakeeles, mitte tehnilise veateatena.
Perioodiline tervisekontroll tõstab punase haldusteate, kui miski vajab tähelepanu — nt "N sync events failed in the last 24 hours" või et soovitusmootor või Smaily API on olnud üle tunni kättesaamatu. Kui Smaily keeldub põhjusel, mille ta ise välja ütleb — konto pakett ei sisalda API‑t või salvestatud kontoandmed lükatakse tagasi — ütleb teade seda ja ilmub juba järgmisel kontrollil, mitte tunni pärast, sest ootamine seda vastust ei muuda. Iga teade viitab Event Logile ja kaob ise, kui probleem on möödas.
Kui Smaily deaktiveerib sinu Campaign Intelligence'i konto, saab plugin sellest teada esimesel saatmiskatsel ja punane haldusteade ütleb selle otse välja. Saatmine peatub kohe — toote-, kliendi- ja tellimuste sünkroonimine, impordid, sirvimistelemeetria ja mootori automatsioonid lähevad pausile, nii et sait ei kuluta päringuid kontole, mis need niikuinii tagasi lükkab. Midagi ei lähe kaduma: kõik järjekorras ootav jääb alles ja sinu andmed Smaily poolel jäävad puutumata. Konto saab taasaktiveerida ainult Smaily — plugin ise seda tagasi ei too, seega võta ühendust Smailyga, mitte ära käivita viisardit uuesti. Kui konto on jälle aktiivne, ava Settings → Campaign Intelligence, klõpsa Disconnect ja ühenda konto uue seadistuslingiga; sünkroonimine jätkub sealt, kus see pooleli jäi. Kontaktide sünkroonimine ja Smaily e‑kirja‑automatsioonid on eraldi ühendus ja töötavad kogu selle aja edasi.
Märkus: ebaõnnestunud rida jääb korratavaks 90 päevaks, nii et kiiret pole — ja pidevalt ebaõnnestuvat Smaily kontakti‑saadetist proovitakse mõned korrad üha pikemate vahedega, enne kui see jõuab olekusse failed, selle asemel et seda iga minut lõputult korrata.
FAQ & troubleshootingKKK & tõrkeotsing
Is it safe to re‑sync?Kas re‑sünk on ohutu?
Yes. Every import is safe to re‑run — duplicates are impossible by design. Pressing Start import or Import now again re‑runs the import from scratch, in the background, and it keeps going when you leave the page.
Jah. Iga import on ohutu korrata — duplikaadid on disaini poolest võimatud. Kui vajutad uuesti Alusta importi või Impordi kohe, jookseb import nullist läbi, taustal, ja jätkab ka siis, kui lehelt lahkud.
How often does data sync?Kui tihti andmed sünkivad?
Smaily Connect works at two speeds:
- Near‑real‑time — when a customer or order changes, WooCommerce fires a hook and the plugin queues the change straight away. A live edit (e.g. a product price) typically reaches its destination within about a minute.
- Every 15 minutes (background) — an Action Scheduler job retries anything still queued, processes abandoned carts, and mirrors state back where needed.
One‑time imports run when you press Start import (Contacts) or Import now (Campaign Intelligence) and then continue in the background. The catalog import also starts on its own when you connect Campaign Intelligence.
Smaily Connect töötab kahel kiirusel:
- Peaaegu reaalajas — kui klient või tellimus muutub, käivitab WooCommerce hooki ja plugin paneb muudatuse kohe järjekorda. Reaalne muudatus (nt toote hind) jõuab sihtkohta tavaliselt umbes minutiga.
- Iga 15 minuti järel (taust) — Action Scheduleri töö kordab kõike, mis veel järjekorras, töötleb hüljatud korve ja peegeldab seisu vajadusel tagasi.
Ühekordsed impordid käivituvad, kui vajutad Alusta importi (kontaktid) või Impordi kohe (Campaign Intelligence), ja jätkavad seejärel taustal. Kataloogi import käivitub ka iseenesest, kui ühendad Campaign Intelligence'i.
Why do I see fewer orders than expected?Miks näen oodatust vähem tellimusi?
The Orders import brings in your full history — there is no time window. If a count looks low, it's because only real sales are counted: draft, pending, failed and trashed orders are excluded (they aren't completed sales), and a store with many orders often has far fewer unique customers because of repeat buyers.
Tellimuste import toob sisse su terve ajaloo — ajaakent pole. Kui number tundub madal, on põhjus, et loetakse ainult päris müügid: mustand‑, ootel, ebaõnnestunud ja prügikasti‑tellimused on välja jäetud (need pole lõpetatud müügid), ja paljude tellimustega poel on korduvostjate tõttu sageli palju vähem unikaalseid kliente.
Is my whole customer list imported?Kas terve kliendinimekiri imporditakse?
Every registered customer account, yes. The customer import is not truncated. It covers the customer accounts on your store — shoppers who only ever checked out as a guest, without an account, are not part of the import. The guest‑order email setting under Contacts applies to new orders from then on, not to the import. A count lower than you expect is usually guest‑only buyers, or repeat buyers collapsing into fewer unique customers — not a dropped record.
Iga registreeritud kliendikonto, jah. Klientide import ei ole kärbitud. See hõlmab su poe kliendikontosid — ostlejad, kes on alati tellinud külalisena, ilma kontota, ei kuulu importi. Külalis‑tellimuste e‑posti seade jaotises Kontaktid kehtib edaspidi uutele tellimustele, mitte impordile. Oodatust madalam number on tavaliselt ainult külalisena ostnud kliendid või korduvostjad, kes koonduvad vähemateks unikaalseteks klientideks — mitte kaotatud kirje.
What does Disconnect do?Mida Disconnect teeb?
- Disconnect Smaily — contact sync stops until you reconnect. Existing contacts and Smaily automations are untouched.
- Disconnect Campaign Intelligence — data ingest stops and the plugin tells Campaign Intelligence that this connection ends. If your store has no other connection, Campaign Intelligence pauses the store: it issues no recommendations and sends none of its automated emails, and it keeps your store's data. Reconnecting needs a fresh one‑time setup link and ends the pause.
- Disconnect Smaily — kontakti‑sünk peatub kuni taasühendamiseni. Olemasolevaid kontakte ja Smaily automaatikaid ei puudutata.
- Disconnect Campaign Intelligence — andmevoog peatub ja plugin annab Campaign Intelligence'ile teada, et see ühendus lõpeb. Kui su poel teist ühendust ei ole, paneb Campaign Intelligence poe pausile: soovitusi ei anta ja selle automaatseid e‑kirju ei saadeta, aga poe andmed jäävad alles. Taasühendamiseks on vaja värsket ühekordset seadistuslinki ja see lõpetab pausi.
Does uninstalling delete my data?Kas eemaldamine kustutab andmed?
Uninstalling the plugin removes its settings and local queue data from your WordPress site. Your Smaily contacts and any Campaign Intelligence data persist — deliberately, so you can change platforms without losing your marketing history. Per‑customer erasure is always available (see below), and your stored Smaily credentials are removed on uninstall. On uninstall, as on Disconnect, the plugin tells Campaign Intelligence that this connection ends: if your store has no other connection, Campaign Intelligence stops using your store's data at once and keeps it. Your store's data is deleted when you close your Smaily account.
Plugina eemaldamine kustutab su WordPressi saidilt selle seaded ja kohaliku järjekorra andmed. Su Smaily kontaktid ja mis tahes Campaign Intelligence'i andmed jäävad alles — meelega, et saaksid platvormi vahetada ilma turundusajalugu kaotamata. Kliendipõhine kustutamine on alati saadaval (vt allpool) ja su salvestatud Smaily andmed eemaldatakse eemaldamisel. Eemaldamisel, nagu ka Disconnect'i korral, annab plugin Campaign Intelligence'ile teada, et see ühendus lõpeb: kui su poel teist ühendust ei ole, lõpetab Campaign Intelligence su poe andmete kasutamise kohe ja hoiab need alles. Su poe andmed kustutatakse, kui sulged oma Smaily konto.
Data & privacyAndmed & privaatsus
What data the plugin usesMis andmeid plugin kasutab
- Customer name and email — to sync contacts to your Smaily account and, with Campaign Intelligence, as the per‑customer identity.
- Order and product data — to power automations and, when enabled, recommendations.
- Browse events — only when you enable browse tracking and the shopper said yes to marketing in a consent banner connected to the WP Consent API. The browser itself never sends an email or recommendation id — only an opaque visitor token. If the shopper is logged in and hasn't opted out of personalisation, the plugin attaches their email server‑side before forwarding the event, so recommendations stay linked to their account even mid‑session; the email never reaches the page or the browser.
- Storefront recommendations — only on a page with the Recommendations block and only when the shopper said yes to marketing in a consent banner connected to the WP Consent API. Your store asks Smaily by the WordPress customer id or the visitor token — never by an email — and the browser sends nothing about the shopper.
- Visitor‑token cookie for guest buyers — when Campaign Intelligence is connected and a shopper places an order without an account after saying yes to marketing cookies in your store's consent banner, the plugin creates a random visitor token, saves it in the
smaily_rec_uidcookie (365 days by default) and on the order. It lets Smaily recognise the buyer on a later visit and show them recommendations. Only an explicit yes counts: the banner must come from a consent plugin connected to the WP Consent API and must have stored the shopper's yes (see Companion plugins). Without such a plugin, without a stored yes — also where the banner treats silence as consent — or when the shopper already has a token, nothing is created. Logged‑in buyers don't get one — they are recognised by their account. - Discount codes — when an automation's Send a discount code is on, the single‑use WooCommerce coupon the plugin makes for a shopper holds their email address as the only address allowed to use it. Codes never used are deleted 30 days after they expire; a used code stays with your store's coupons. A WordPress erase request deletes the shopper's unused codes and removes their email address from the used ones (see Deletion & GDPR).
The optional customer fields beyond email are the ones you tick in Contacts.
- Kliendi nimi ja e‑post — kontaktide sünkimiseks su Smaily kontosse ja Campaign Intelligence'iga kliendipõhise identiteedina.
- Tellimuste ja toodete andmed — automaatikate ja lubatuna soovituste toitmiseks.
- Sirvimissündmused — ainult siis, kui lubad sirvimise jälgimise ja klient on WP Consent API‑ga ühendatud nõusolekubänneris turundusele "jah" öelnud. Brauser ise ei saada kunagi e‑posti ega soovituse‑id'd — ainult läbipaistmatu külastaja‑tokeni. Kui klient on sisse logitud ja ei ole personaliseerimisest loobunud, lisab plugin tema e‑posti aadressi serveripoolselt enne sündmuse edastamist, et soovitused püsiksid seotuna tema kontoga ka poole sessiooni pealt — e‑post ei jõua kunagi lehele ega brauserisse.
- Poe soovitused — ainult soovituste plokiga lehel ja ainult siis, kui ostja on WP Consent API‑ga ühendatud nõusolekubänneris turundusele "jah" öelnud. Sinu pood küsib Smaily käest WordPressi kliendi‑id või külastaja‑tokeni järgi — mitte kunagi e‑posti järgi — ning brauser ei saada ostja kohta midagi.
- Külastaja‑tokeni küpsis külalisostjale — kui Campaign Intelligence on ühendatud ja klient vormistab tellimuse ilma kontota pärast seda, kui on su poe küpsisebänneris turundusküpsistele "jah" öelnud, loob plugin juhusliku külastaja‑tokeni ning salvestab selle küpsisesse
smaily_rec_uid(vaikimisi 365 päeva) ja tellimusele. Selle abil tunneb Smaily ostja järgmisel külastusel ära ja saab talle soovitusi näidata. Arvesse läheb ainult selgesõnaline "jah": bänner peab tulema WP Consent API‑ga ühendatud nõusolekupluginast ja olema ostja "jah"‑i salvestanud (vt Kaaslas‑pluginad). Sellise pluginata, salvestatud "jah"‑ita — ka seal, kus bänner loeb vaikimisi nõusolekuks — või kui kliendil on token juba olemas, ei looda midagi. Sisseloginud ostja tokenit ei saa — teda tuntakse ära konto järgi. - Sooduskoodid — kui automaatika Send a discount code on sees, hoiab plugina ostlejale loodud ühekordne WooCommerce'i kupong tema e‑posti aadressi ainsa aadressina, millega kupongi saab kasutada. Kunagi kasutamata koodid kustutatakse 30 päeva pärast nende aegumist; kasutatud kood jääb su poe kupongide hulka. WordPressi kustutuspäring kustutab ostleja kasutamata koodid ja eemaldab tema e‑posti aadressi kasutatud koodidelt (vt Kustutamine & GDPR).
Valikulised kliendiväljad peale e‑posti on need, mille sina märgid jaotises Kontaktid.
Deletion & GDPRKustutamine & GDPR
Smaily Connect integrates with WordPress's built‑in privacy tools (Tools → Export Personal Data and Erase Personal Data):
- Export — a data request includes the customer's data held by the plugin.
- Erase — an erase request removes the customer from the plugin and asks Campaign Intelligence to delete them.
The erase request also empties the plugin's Smaily send queue for that address: any message still waiting to go out is deleted, so nothing is sent to someone who has asked to be forgotten. Messages that were already sent stay in the Event log as a record that they were sent, but are anonymised — the address, the name and the product details are replaced with [erased].
The erase request does not send the customer to your Smaily account either. When WooCommerce erases the customer's billing and shipping data, it saves the customer's profile; the plugin does not send that save to Smaily, and when the request finishes it removes any contact update for the address that is still waiting. The contact in your Smaily account is not removed, and the result of the erase request reminds you of this. If the person must be forgotten in Smaily too, remove the contact in Smaily.
It also deletes the plugin's own copies of what was sent to Campaign Intelligence for that address — the customer and order records the Event log shows under Details. Those rows leave the Event log entirely. Customer and order updates for that customer that are still waiting to be sent to Campaign Intelligence are deleted too, so they cannot add the customer back. A later order or account change is a new action and is sent as usual.
The discount codes the plugin made for that address are covered too. The export lists each one: the code, when it was made, when it expires and whether it was used. The erase request deletes the codes that were never used. A used code stays, because its order still names it, but the shopper's email address is removed from it and from WooCommerce's record of who used it: the code's allowed email becomes WordPress's anonymised address deleted@site.invalid, so nobody can use the code again. Coupons you made yourself are never changed.
Shoppers also control profiling themselves: the opt‑out under My Account → Smaily Campaign Intelligence (shown on stores with Campaign Intelligence connected) is honoured on the store and mirrored to the shopper's Smaily contact when one exists. Per‑customer erasure is available on request at any time.
Smaily Connect on lõimitud WordPressi sisseehitatud privaatsustööriistadega (Tools → Export Personal Data ja Erase Personal Data):
- Eksport — andmepäring sisaldab plugina hoitavaid kliendiandmeid.
- Kustutamine — kustutuspäring eemaldab kliendi pluginast ja palub Campaign Intelligence'il ta kustutada.
Kustutuspäring tühjendab ka plugina Smaily saatmisjärjekorra selle aadressi jaoks: kõik veel saatmata kirjad kustutatakse, nii et kustutamist palunud inimesele ei lähe midagi välja. Juba saadetud kirjad jäävad Sündmuste logisse tõendina, et need saadeti, kuid muudetakse anonüümseks — aadress, nimi ja tooteandmed asendatakse väärtusega [erased].
Kustutuspäring ei saada klienti ka sinu Smaily kontosse. Kui WooCommerce kustutab kliendi arveldus- ja tarneandmed, salvestab ta kliendi profiili; plugin ei saada seda salvestust Smailysse ning eemaldab päringu lõpus iga selle aadressi veel ootava kontaktiuuenduse. Kontakti sinu Smaily kontost ei eemaldata ja kustutuspäringu tulemus tuletab seda meelde. Kui inimene tuleb ka Smailys unustada, eemalda kontakt Smailys.
Samuti kustutab see plugina enda koopiad sellest, mis selle aadressi kohta Campaign Intelligence'ile saadeti — kliendi- ja tellimuskirjed, mida Sündmuste logi näitab vaates Details. Need read kaovad sündmuste logist täielikult. Kustutatakse ka selle kliendi kliendi- ja tellimusuuendused, mis ootavad veel Campaign Intelligence'ile saatmist, nii et need ei saa klienti tagasi lisada. Hilisem tellimus või kontomuudatus on uus toiming ja saadetakse tavapäraselt.
Eksport ja kustutuspäring hõlmavad ka sooduskoode, mille plugin selle aadressi jaoks lõi. Eksport loetleb iga koodi: koodi, selle loomise ja aegumise aja ning kas seda on kasutatud. Kustutuspäring kustutab koodid, mida pole kunagi kasutatud. Kasutatud kood jääb alles, sest tellimus viitab sellele, kuid ostleja e‑posti aadress eemaldatakse koodilt ja WooCommerce'i kirjest selle kohta, kes koodi kasutas: koodi lubatud e‑postiks saab WordPressi anonüümne aadress deleted@site.invalid, nii et keegi ei saa koodi enam kasutada. Sinu enda loodud kuponge ei muudeta kunagi.
Kliendid juhivad profileerimist ka ise: loobumine My Account → Smaily Campaign Intelligence all (nähtav poodides, kus Campaign Intelligence on ühendatud) austatakse poes ja peegeldatakse ostleja Smaily kontaktile, kui see on olemas. Kliendipõhine kustutamine on igal ajal soovi korral saadaval.
Privacy‑policy text for your storePrivaatsuspoliitika tekst su poele
Because personalisation is on by default (Step 4), your store's privacy policy needs to disclose it. Below is a template paragraph, written from what the plugin actually does, that you can adapt into your own privacy policy. This is not legal advice — have your own legal counsel review the adapted text before publishing it, including the lawful‑basis choice and, if you rely on legitimate interest, a documented balancing test.
Personalised product recommendations (profiling)
Who processes the data. [Your store name] ("we") is the data controller. To personalise our email marketing we use the Smaily Campaign Intelligence service provided by Sendsmaily OÜ ("Smaily"), which processes this data on our behalf as our data processor, under a data processing agreement. Smaily's own privacy information is available at connect.smaily.com/privacy.
What we do. We use your purchase history and — if you have accepted marketing cookies — your browsing activity in our online store to personalise the product recommendations shown in the emails we send you. This is "profiling" within the meaning of the GDPR: an automated analysis of your shopping behaviour to predict which products may interest you. It only affects which products we show you in our emails and recommendations — it has no legal or similarly significant effect on you, and no automated decisions within the meaning of Article 22 GDPR are made about you.
What data is used.
- Contact and account details: email address, name, phone number, country and preferred language.
- Purchase history: products ordered, quantities, prices, order dates and order statuses, and returns — which items were refunded, when, and the reason our staff recorded on the refund.
- Browsing activity in our store (only if you have accepted marketing cookies): pages and products viewed, cart events and searches, linked to a pseudonymous visitor identifier — and, while you are logged in and have not opted out of personalisation, linked directly to your account.
- Technical identifiers: a pseudonymous visitor token and session identifier, and first‑party cookies we set when you arrive in our store through a recommendation link in one of our emails (cookies
smaily_rec_idandsmaily_rec_ctx, kept for up to 30 days, andsmaily_rec_uid, kept for up to 365 days, by default). These are used to measure which recommendations led to purchases. If you have accepted marketing cookies and place an order without an account, we also set thesmaily_rec_uidcookie with a random visitor token and store it with your order, so that we can recognise you and show you recommendations on a later visit. - Abandoned‑cart reminders (if enabled, separate from the profiling described above): if you leave items in your cart without completing checkout, we may store your cart contents, email address and name for a short time in our own store's systems (not the Smaily Campaign Intelligence recommendation engine) to send you a reminder email.
Legal basis. We process this data on the basis of our legitimate interest (Article 6(1)(f) GDPR) in offering relevant marketing to our customers, combined with your right to object at any time (Article 21 GDPR). Personalisation is on by default; you can switch it off at any time (see below). Browsing data is collected only with your cookie consent (marketing cookies). [Your legal counsel: confirm the lawful basis for your store and document a legitimate‑interest assessment.]
How to opt out. Log in to your account and open My Account: under "Smaily Campaign Intelligence", untick "Use my data for personalised recommendations" and save. Opting out stops the use of your data for personalised recommendations — you will still receive our emails, just without personalisation. You can also opt out by contacting us at [your contact email]. We act on an opt‑out without undue delay; it may take up to 24 hours to take effect across all systems. Withdrawing your marketing‑cookie consent (in the cookie settings) stops the collection of browsing data.
Your rights. You have the right to access the personal data used for recommendations and receive a copy of it, to have it erased, to object to profiling (as described above), and to lodge a complaint with your data protection supervisory authority [name your supervisory authority — e.g. Andmekaitse Inspektsioon for Estonian stores]. To exercise access or erasure, contact us at [your contact email].
Retention. We keep each kind of data only as long as its purpose needs it; after that it is deleted automatically and permanently:
- Your browsing activity in our store (pages and products viewed, cart events and searches) and your interactions with our emails (opens and clicks): 14 months after each event, so that we can compare with the same month a year earlier (seasonal purchases), plus two months of margin.
- The pseudonymous visitor token: 14 months after its last activity (its creation, or the latest order that carried it), so that we can recognise you as a returning shopper in our store (recommendations in the store, crediting a purchase) across a year of repeat purchases, plus two months of margin. The cookie in your browser expires on its own schedule, as stated above.
- The product recommendations computed for you, the records of which recommendation led to which purchase, and the history of your engagement with our emails: 2 years (730 days), for two‑year reporting and to look back at purchases.
- A recommendation that a newer one replaced: 180 days after the replacement, so that a later click or purchase can still be credited to the email that showed the product, and so that products are not repeated too soon. One that is still linked to a click or purchase record is kept as long as that record, at most 2 years.
- Short‑lived technical records: why a recommendation was chosen, 30 days (support and error tracing); signals from your shopping behaviour that the next recommendations act on, 30 days after they were acted on, or 90 days after they were detected if they never were (an old signal no longer describes you); changes to the weights of the recommendation rules, 90 days (checking and undoing a wrong change); data our store sent twice, 90 days (so that it is stored once).
- Your contact and account details and the recommendation profile kept with them, your purchase history and our product catalogue: as long as we use this service for our store, to provide the service.
When we close our Smaily account, all data held for our store in this service is deleted. If you ask us to erase your data at any time (see "Your rights" above), it is deleted immediately regardless of these periods; we retain only a record showing that the deletion was carried out. Abandoned‑cart reminder data (cart contents, email, name — a separate feature from the profiling above) is kept for a short period, by default up to 24 hours since your last cart activity, and then automatically deleted, or deleted immediately once you complete your order or empty your cart.
Replace [Your store name], [your contact email] and the supervisory‑authority name with your own; drop the browsing‑activity and abandoned‑cart sentences if you don't use those features. Have your own legal counsel review the final text.
Kuna personaliseerimine on vaikimisi sees (Samm 4), vajab su poe privaatsuspoliitika seda mainima. Allpool on malllõik, kirjutatud selle põhjal, mida plugin tegelikult teeb, mida saad kohandada oma privaatsuspoliitikasse. See ei ole õigusnõustamine — lase oma juristil kohandatud tekst enne avaldamist üle vaadata, sh õigusliku aluse valik ja, kui tugined õigustatud huvile, dokumenteeritud kaalumisotsus.
Personaalsed tootesoovitused (profileerimine)
Kes andmeid töötleb. [Sinu poe nimi] ("meie") on vastutav töötleja. E‑posti turunduse personaliseerimiseks kasutame Smaily Campaign Intelligence'i teenust, mida osutab Sendsmaily OÜ ("Smaily") ja mis töötleb neid andmeid meie nimel volitatud töötlejana, andmetöötluslepingu alusel. Smaily enda privaatsusteave on kättesaadav aadressil connect.smaily.com/privacy.
Mida me teeme. Kasutame sinu ostuajalugu ja — kui oled andnud nõusoleku turundusküpsisteks — sinu sirvimistegevust meie e‑poes, et personaliseerida meie saadetavates e‑kirjades kuvatavaid tootesoovitusi. See on profileerimine isikuandmete kaitse üldmääruse (GDPR) tähenduses: sinu ostukäitumise automaatne analüüs eesmärgiga ennustada, millised tooted võiksid sind huvitada. See mõjutab üksnes seda, milliseid tooteid sulle meie kirjades ja soovitustes näitame — sellel ei ole sinu jaoks õiguslikke ega muid samaväärselt olulisi tagajärgi ning sinu suhtes ei tehta automatiseeritud otsuseid GDPR artikli 22 tähenduses.
Milliseid andmeid kasutatakse.
- Kontakt- ja kontoandmed: e‑posti aadress, nimi, telefoninumber, riik ja eelistatud keel.
- Ostuajalugu: tellitud tooted, kogused, hinnad, tellimuste kuupäevad ja staatused ning tagastused — millised tooted tagastati, millal, ja põhjus, mille meie töötaja tagasimaksele märkis.
- Sirvimistegevus meie poes (ainult turundusküpsiste nõusolekul): vaadatud lehed ja tooted, ostukorvisündmused ja otsingud, seotuna pseudonüümse külastajatunnusega — ning sisselogituna ja kui sa ei ole personaliseerimisest loobunud, seotakse see lisaks otse sinu kontoga.
- Tehnilised identifikaatorid: pseudonüümne külastajatunnus (visitor token) ja seansitunnus ning esimese osapoole küpsised, mille paigaldame, kui jõuad meie poodi meie e‑kirjas olnud soovituslingi kaudu (küpsised
smaily_rec_idjasmaily_rec_ctx, säilivad vaikimisi kuni 30 päeva, ningsmaily_rec_uid, säilib vaikimisi kuni 365 päeva). Nende abil mõõdame, millised soovitused viisid ostuni. Kui oled andnud nõusoleku turundusküpsisteks ja vormistad tellimuse ilma kontota, paigaldame ka küpsisesmaily_rec_uidjuhusliku külastajatunnusega ja salvestame selle sinu tellimusele, et tunda sind järgmisel külastusel ära ja näidata sulle soovitusi. - Hüljatud ostukorvi meeldetuletused (kui funktsioon on sisse lülitatud, eraldiseisev eespool kirjeldatud profileerimisest): kui jätad ostukorvi tellimust vormistamata, võime lühikeseks ajaks salvestada sinu ostukorvi sisu, e‑posti aadressi ja nime meie enda poe süsteemides (mitte Smaily Campaign Intelligence soovitusmootoris), et saata sulle meeldetuletuse e‑kiri.
Õiguslik alus. Töötleme neid andmeid oma õigustatud huvi alusel (GDPR art 6 lg 1 p f) pakkuda oma klientidele asjakohast turundust, koos sinu õigusega esitada igal ajal vastuväide (GDPR art 21). Personaliseerimine on vaikimisi sisse lülitatud; saad selle igal ajal välja lülitada (vt allpool). Sirvimisandmeid kogume ainult sinu küpsisenõusolekul (turundusküpsised). [Sinu jurist: kinnita oma poe õiguslik alus ja dokumenteeri õigustatud huvi kaalumisotsus.]
Kuidas loobuda. Logi sisse ja ava Minu konto: eemalda jaotises "Smaily Campaign Intelligence" linnuke valikult "Kasuta minu andmeid personaalsete soovituste jaoks" ja salvesta. Loobumine peatab sinu andmete kasutamise personaalsete soovituste jaoks — e‑kirju saad edasi, lihtsalt ilma personaliseerimiseta. Loobuda saad ka, kirjutades meile aadressil [sinu kontakt‑e‑post]. Rakendame loobumise põhjendamatu viivituseta; kõigis süsteemides jõustumine võib võtta kuni 24 tundi. Turundusküpsiste nõusoleku tagasivõtmine (küpsiste seadetes) peatab sirvimisandmete kogumise.
Sinu õigused. Sul on õigus tutvuda soovituste jaoks kasutatavate isikuandmetega ja saada neist koopia, nõuda nende kustutamist, esitada vastuväide profileerimisele (nagu eespool kirjeldatud) ning esitada kaebus andmekaitse järelevalveasutusele [nimeta oma järelevalveasutus — nt Andmekaitse Inspektsioon Eesti poodidele]. Andmetega tutvumiseks või kustutamiseks kirjuta meile aadressil [sinu kontakt‑e‑post].
Säilitamine. Hoiame iga liiki andmeid ainult nii kaua, kui selle eesmärk nõuab; seejärel kustutatakse need automaatselt ja jäädavalt:
- Sinu sirvimistegevus meie poes (vaadatud lehed ja tooted, ostukorvisündmused ja otsingud) ning sinu tegevus meie e‑kirjadega (avamised ja klikid): 14 kuud pärast iga sündmust, et saaksime võrrelda eelmise aasta sama kuuga (hooajalised ostud), pluss kahe kuu varu.
- Pseudonüümne külastajatunnus: 14 kuud pärast selle viimast kasutust (loomist või viimast tellimust, millega see kaasas oli), et tunda sind meie poes naasva ostjana ära (soovitused poes, ostu sidumine soovitusega) aasta jooksul korduvate ostude vältel, pluss kahe kuu varu. Sinu brauseris olev küpsis aegub oma tähtaja järgi, nagu eespool kirjas.
- Sulle arvutatud tootesoovitused, kirjed selle kohta, milline soovitus millise ostuni viis, ning sinu e‑kirjadega seotud kaasatuse ajalugu: 2 aastat (730 päeva), kaheaastase aruandluse ja ostude tagasivaate jaoks.
- Soovitus, mille uuem soovitus asendas: 180 päeva pärast asendamist, et hilisemat klikki või ostu saaks endiselt siduda e‑kirjaga, mis toodet näitas, ja et samu tooteid liiga varsti ei korrataks. Kui soovitus on seotud kliki või ostu kirjega, hoitakse seda sama kaua kui seda kirjet, kõige rohkem 2 aastat.
- Lühiajalised tehnilised kirjed: miks soovitus valiti — 30 päeva (kasutajatugi ja vigade uurimine); sinu ostukäitumise signaalid, millele järgmised soovitused toetuvad — 30 päeva pärast seda, kui neid kasutati, või 90 päeva pärast avastamist, kui neid ei kasutatud (vana signaal ei kirjelda sind enam); soovitusreeglite kaalude muudatused — 90 päeva (vale muudatuse kontrollimiseks ja tagasivõtmiseks); meie poe kaks korda saadetud andmed — 90 päeva (et need salvestataks ühe korra).
- Sinu kontakt- ja kontoandmed koos nende juures hoitava soovitusprofiiliga, sinu ostuajalugu ja meie tootekataloog: seni, kuni kasutame seda teenust oma poe jaoks, teenuse osutamiseks.
Kui sulgeme oma Smaily konto, kustutatakse kõik selles teenuses meie poe kohta hoitavad andmed. Kui palud oma andmed igal ajal kustutada (vt eespool "Sinu õigused"), kustutatakse need kohe, sõltumata eespool nimetatud tähtaegadest; alles jääb üksnes kirje, mis tõendab, et kustutamine on tehtud. Hüljatud ostukorvi meeldetuletuse andmeid (ostukorvi sisu, e‑post, nimi — eraldiseisev funktsioon eespool kirjeldatud profileerimisest) säilitame lühikest aega, vaikimisi kuni 24 tundi alates viimasest ostukorvi muudatusest, ning kustutame need seejärel automaatselt, või kustutame kohe, kui vormistad tellimuse või tühjendad ostukorvi.
Asenda [Sinu poe nimi], [sinu kontakt‑e‑post] ja järelevalveasutuse nimi enda omadega; jäta ära sirvimistegevuse ja hüljatud ostukorvi laused, kui neid funktsioone ei kasuta. Lase lõplik tekst üle vaadata oma juristil.
Security & isolationTurvalisus & isolatsioon
- Credentials are encrypted — your Smaily API password and engine key are stored with AES‑256‑GCM, never in plain text.
- Secrets never reach the browser — keys and passwords stay server‑side; Event Log rows store the request and response but never the Authorization header.
- Per‑connection isolation — the recommendation engine issues a key per connection, so your store's key is independent of any other store.
Smaily Connect is operated by Sendsmaily OÜ. Questions: info@smaily.com.
- Andmed on krüpteeritud — su Smaily API‑parool ja mootori‑võti salvestatakse AES‑256‑GCM‑iga, mitte kunagi avatekstina.
- Saladused ei jõua brauserisse — võtmed ja paroolid jäävad serveripoolseks; Event Logi read salvestavad päringu ja vastuse, aga mitte kunagi Authorization‑päist.
- Ühenduspõhine isolatsioon — soovitusmootor annab võtme ühenduse kohta, seega su poe võti on sõltumatu igast teisest poest.
Smaily Connectit haldab Sendsmaily OÜ. Küsimused: info@smaily.com.