Förstå syntaxen för SMOC-uttryck i beslutselement

Uttryck

Botten stöder för närvarande två typer av uttryck:

  • Smoc-uttryck: Används i beslutselement för att avgöra vart man ska gå härnäst. Smoc-uttryck returnerar alltid siffror.
  • ICU-uttryck: Används i meddelanden (text, knappar, etc) för dynamiskt innehåll. ICU-uttryck returnerar alltid strängar.

Smoc-uttryck i beslutselement

När Smoc bot-motorn fattar ett beslut om vilken kant som ska följas härnäst,
använder den Smoc-uttryck för att tilldela ett numeriskt poäng till varje möjlig kant.

Sedan väljs en kant att följa:

  • Om inga kanter har ett positivt poäng, följs ingen kant.
    • VIKTIGT: Lägg alltid till en standardkant med poäng 0.5 för att säkerställa att botten inte fastnar.
  • Om en kant har högre poäng än alla andra kanter, kommer den att följas.
  • Om flera kanter har högsta poäng, väljs en slumpmässig bland dem.

Smoc-uttryck är infix aritmetiska uttryck.

Giltiga operatorer är +, -, * och /. Du kan också använda ( och ) för att gruppera subuttryck.

Varje operand är antingen ett nummer eller en variabel. De flesta variabler förväntar sig ett skiftlägesokänsligt argument efter =-tecknet.

Till exempel:

2 * ${answer=34}

I det här exemplet är den första operanden 2 (ett nummer), och den andra operanden är ${answer=34} (en variabel).

En variabel utvärderas till antingen 0 eller 1. Variabeln ${answer=34} utvärderas till 1 endast om besökaren
har gett ett svar på en enkätfråga med id 34.

Det finns många Smoc-uttrycksvariabler att välja mellan, och de flesta representerar fakta vi vet om besökaren innan
de har börjat interagera med botten (såsom geolokalisering, enhetstyp, utm_-variabler etc).

ICU-uttryck i meddelanden

ICU-uttryck används för att formatera meddelanden. De kan referera till kontextvariabler från den pågående konversationen.

Till exempel:

Hello from {country_name}!

Om variabeln country_name är "Norway", kommer meddelandet att formateras så här:

Hello from Norway!

ICU-uttryck stöder också att visa olika text beroende på värdet av en variabel:

{country_name,select,
  Norway {Hello from Norway!}
	other {Hello from another country!}
}

I det här exemplet, om variabeln country_name är "Norway", kommer meddelandet att formateras som Hello from Norway!. Annars kommer det att formateras som Hello from another country!.

Kontaktfälts-fallbacks hör hemma i meddelande ICU, inte i ${…=}-beslutsuttryck. Saknad {linkedin_company} eller {company} blir en tom sträng om du inte skriver {linkedin_company, fallback, company {your team}}. Dessa två fält är olika: LinkedIn-profilföretag vs kontaktregisterföretag.

Dessa uttryck kan kedjas ihop för att skapa dynamiska meddelanden baserat på flera variabler:

Ta följande prismodell:

Varifrån kommer du? Är du student? Pris
Norge Ja 100
Norge Nej 200
Sverige Ja 300
Sverige Nej 400
annat annat 500

Det motsvarande ICU-uttrycket skulle vara:

{country, select,
  Norway {
    {student, select,
      Yes {Your price is 100}
      No {Your price is 200}
      other {Your price is 500}
    }
  }
  Sweden {
    {student, select,
      Yes {Your price is 300}
      No {Your price is 400}
      other {Your price is 500}
    }
  }
  other {Your price is 500}
}

Om användaren har besvarat dessa frågor i flödet, kommer meddelandet att formateras med rätt pris.

Precis som smoc-uttryck måste frågorna och svaren vara id för frågan / svaret:

question_1 question_2 Pris
answer_3 answer_5 100
answer_3 answer_6 200
answer_4 answer_5 300
answer_4 answer_6 400
annat annat 500

Det motsvarande ICU-uttrycket skulle vara:

{question_1, select,
  answer_3 {
    {question_2, select,
      answer_5 {Your price is 100}
      answer_6 {Your price is 200}
      other {Your price is 500}
    }
  }
  answer_4 {
    {question_2, select,
      answer_5 {Your price is 300}
      answer_6 {Your price is 400}
      other {Your price is 500}
    }
  }
  other {Your price is 500}
}

Verktyg

Att skapa ICU-uttryck kan vara lite knepigt, så det rekommenderas att använda verktyg för att skapa dem:

Variabler

Tabellen nedan listar alla tillgängliga Smoc-uttrycksvariabler.

Namn Exempel på Smoc-uttryck Exempel på ICU-uttryck Beskrivning
accept_language ${accept_language=some_accept_language} {accept_language} En sträng
browser ${browser=115} {browser} Webbläsaridentifierare. Se fullständig lista för alla stödda värden (100+ alternativ)
city ${city=some_city} {city} En sträng
conversation_url ${conversation_url=some_conversation_url} {conversation_url} En sträng
country_name ${country_name=some_country_name} {country_name} En sträng
device_type ${device_type=console} {device_type} Enhetstyp. Se fullständig lista för alla stödda värden
lang ${lang=da-DK} {lang} Språkkod. Se fullständig lista för alla stödda värden
os ${os=AIX} {os} Operativsystem. Se fullständig lista för alla stödda värden (100+ alternativ)
os_version ${os_version=some_os_version} {os_version} En sträng
referrer ${referrer=some_referrer} {referrer} En sträng
referring_domain ${referring_domain=some_referring_domain} {referring_domain} En sträng
region ${region=some_region} {region} En sträng
user_agent ${user_agent=some_user_agent} {user_agent} En sträng
utm_campaign ${utm_campaign=some_utm_campaign} {utm_campaign} En sträng
utm_content ${utm_content=some_utm_content} {utm_content} En sträng
utm_medium ${utm_medium=some_utm_medium} {utm_medium} En sträng
utm_source ${utm_source=some_utm_source} {utm_source} En sträng
utm_term ${utm_term=some_utm_term} {utm_term} En sträng

Webbläsarvärden

115 / 2345 / 360 / Alipay / Amaya / Android Browser / Arora / Avant / Avast Secure Browser / AVG Secure Browser / Baidu Browser / Basilisk / Blazer / Bolt / Bowser / Brave / Camino / Chimera / Chrome / Chrome Headless / Chrome WebView / Chromium / Cobalt / Coc Coc / Conkeror / Dillo / Dolphin / Doris / Dragon / DuckDuckGo / Edge / Epiphany / Facebook / Falkon / Fennec / Firebird / Firefox / Firefox Focus / Firefox Reality / Flock / Flow / GoBrowser / GSA / Helio / HeyTap / Honor / Huawei Browser / iCab / ICE Browser / IceApe / IceCat / IceDragon / IceWeasel / IE / Instagram / Iridium / Iron / Jasmine / K-Meleon / KakaoTalk / KHTML / Kindle / Klar / Klarna / Konqueror / LBBROWSER / LibreWolf / Line / LinkedIn / Links / Lunascape / Lynx / Maemo Browser / Maxthon / Midori / Minimo / MIUI Browser / Mobile Chrome / Mobile Firefox / Mobile Safari / Mosaic / Mozilla / Naver / NetFront / Netscape / Netsurf / Nokia Browser / Obigo / Oculus Browser / OmniWeb / Opera / Opera Coast / Opera Mini / Opera Mobi / Opera Tablet / Opera Touch / OviBrowser / PaleMoon / PhantomJS / Phoenix / Pico Browser / Polaris / Puffin / QQBrowser / QQBrowserLite / Quark / QupZilla / rekonq / Rockmelt / Safari / Sailfish Browser / Samsung Internet / SeaMonkey / Silk / Skyfire / Sleipnir / SlimBoat / SlimBrowser / Slimjet / Smart Lenovo Browser / Snapchat / Sogou Explorer / Sogou Mobile / Swiftfox / Tesla / TikTok / Tizen Browser / Twitter / UCBrowser / UP.Browser / Vivaldi / Vivo Browser / w3m / Waterfox / WebKit / WeChat / Weibo / Whale / Wolvic / Yandex

Enhetstypsvärden

console / desktop / embedded / mobile / smarttv / tablet / wearable / xr

Språkvärden

da-DK / en-GB / es-ES / fi-FI / nb-NO / sv-SE

Operativsystemvärden

AIX / Amiga OS / Android / Android-x86 / Arch / Bada / BeOS / BlackBerry / CentOS / Chrome OS / Chromecast / Chromecast Android / Chromecast Fuchsia / Chromecast Linux / Chromecast SmartSpeaker / Contiki / Debian / Deepin / DragonFly / elementary OS / Fedora / Firefox OS / FreeBSD / Fuchsia / Gentoo / GhostBSD / GNU / Haiku / HarmonyOS / HP-UX / Hurd / iOS / Joli / KaiOS / Linpus / Linspire / Linux / macOS / Maemo / Mageia / Mandriva / Manjaro / MeeGo / Minix / Mint / Morph OS / NetBSD / NetRange / NetTV / Nintendo / OpenBSD / OpenHarmony / OpenVMS / OS/2 / Palm / PC-BSD / PCLinuxOS / Pico / Plan9 / PlayStation / QNX / Raspbian / RedHat / RIM Tablet OS / RISC OS / Sabayon / Sailfish / SerenityOS / Series40 / Slackware / Solaris / SUSE / Symbian / Tizen / Ubuntu / Unix / VectorLinux / watchOS / WebOS / Windows / Windows Mobile / Windows Phone / Xbox / Zenwalk

Var AI körs

AI gör jobbet. Du granskar den.

Webbchatt, kortflöden och LinkedIn delar ett system. AI gör varje jobb nedan. Raden under titeln säger var jobbet körs.

Varje agent

AI går igenom webbplatsen och skriver erbjudandet, målgruppen, rösten och varumärket. Webbchatt, kortflöden och LinkedIn utgår från det.

Instrumentpanel · Leadstrategi

Sätt ditt leadmål. AI simulerar tusentals kanalmixer, rangordnar dem efter effektivitet och visar den mest kostnadseffektiva planen. Dina data och ramar styr beräkningen.

Varje agent · tema på webben · lista på LinkedIn

AI skriver flödet. Temat körs på webbchatt och kort. Översättning körs på varje agent. AI hittar prospektlistan på LinkedIn.

Sökväg på varje flöde · webb och LinkedIn var för sig

Förstärkningsinlärning på flödets sökväg körs på varje agent. Rekommendationer körs på webben. Rätt tidpunkt och läsning av svar körs på LinkedIn.

Varje agent

AI föreslår en variant, använder din bedömning i nästa utkast och utgår från ett exempel som redan fungerar. Du tar ändringen i bruk.

Håll dig nära skiftet i AI-försäljning

Få produktuppdateringar och perspektiv på proaktiva AI-agenter, flerkanalsorkestrering och konvertering — utan bruset.

Årets produkt Veckosignal om proaktiv AI-försäljning
Gå med i nyhetsbrevet