Your AI Connector Docs

Anpassade funktioner

Med anpassade funktioner kan din AI-bot ansluta till andra system under live-konversationer. Istället för att säga “Jag ska kontrollera detta och återkomma till dig”, kan boten slå upp en orderstatus, kontrollera lagersaldo eller skapa en post i ditt CRM (kundhanteringssystem – den programvara du använder för att spåra leads och kunder, såsom HubSpot eller Salesforce) – allt i realtid, medan kunden väntar.


Anpassade funktioner kontra webhooks

Detta är den vanligaste källan till förvirring, så det är värt att reda ut innan du bygger något.

Webhooks Anpassade funktioner
Riktning Envägs (skicka och glöm) Tvåvägs (anropa och vänta)
Vad boten gör Skickar en notis när något händer och fortsätter sedan. Anropar, pausar, väntar på svar och använder resultatet för att fortsätta konversationen.
Synlighet för konversationen Resultatet i det mottagande systemet är osynligt för boten – den ser aldrig vad som hände. Svaret matas direkt tillbaka till AI:n, så att boten kan citera det, resonera kring det och svara kunden med informationen.
Bäst för Loggning av händelser, synkronisering av data till ett CRM, triggning av externa automatiseringar (Zapier, Make, n8n). Allt där boten behöver ett svar innan den kan svara – live-uppslag, prissättning i realtid, generering av innehåll i farten.

När ska man välja vad: Om du bara behöver meddela ett annat system att något har hänt, använd en webhook – ett enkelriktat automatiserat meddelande som skickas till ett annat system (se Inställningar → Integrationer → Webhooks). Om boten behöver lära sig något från ett annat system innan den fortsätter konversationen, använd en anpassad funktion.


Exempel på vad anpassade funktioner möjliggör

Eftersom svaret matas tillbaka in i konversationen möjliggör anpassade funktioner saker som webhooks helt enkelt inte kan göra:

  • Lagersökning i Shopify eller WooCommerce i realtid — Innan boten ger ett prisförslag till en kund kontrollerar den lagersaldot i realtid och svarar “Ja, vi har 12 stycken i storlek M” istället för “låt mig kontrollera det och återkomma”.
  • Dynamisk prissättning från ett Google-kalkylark — Ditt säljteam uppdaterar priser i ett kalkylark; boten läser av den senaste raden mitt under konversationen och anger det aktuella priset utan att någon behöver ändra i AI-konfigurationen.
  • Voice-AI-återuppringningsagent — När boten kvalificerar en lead triggar den en röstagent (till exempel en ElevenLabs-driven uppringare) att ringa upp leaden inom några minuter, och bekräftar för kunden “bra, förvänta dig ett samtal inom de närmaste 5 minuterna”.
  • Anpassad offert-PDF, genererad och skickad via e-post mitt under chatten — Boten samlar in krav, anropar din offertbyggare, får tillbaka en PDF-URL och säger till kunden “Jag har precis skickat din offert via e-post – kontrollera din inkorg.”

Vad kan anpassade funktioner göra?

Se anpassade funktioner som att ge din bot superkrafter utöver att bara chatta. Här är exempel från verkligheten:

  • Orderstatus - En kund frågar “Var är min order?” och boten kontrollerar ditt e-handelssystem och svarar med leveransstatus och spårningslänk
  • Lagerkontroll - “Har ni den här i storlek 10?” Boten kontrollerar ditt lagersystem och ger ett svar i realtid
  • CRM-uppdateringar - När boten kvalificerar en lead skapar eller uppdaterar den automatiskt en post i HubSpot, Salesforce eller något annat CRM
  • Offertgenerering - Boten samlar in kundens krav och genererar en personlig offert från ditt prissättningssystem
  • Bokning - Boten skapar en tid i ditt externa bokningssystem
  • Rabattverifiering - “Är den här kupongkoden giltig?” Boten kontrollerar och bekräftar
  • Kontouppslag - En återkommande kund identifieras automatiskt och deras kontouppgifter hämtas

Kunden ser aldrig vad som händer bakom kulisserna. De upplever helt enkelt en bot som kan svara på deras frågor med korrekt, uppdaterad information.


Hur anpassade funktioner fungerar (den enkla versionen)

Här är vad som händer när en anpassad funktion triggas under en konversation:

  1. Kunden frågar något som kräver realtidsdata (t.ex. “Var är min beställning?”)
  2. Boten känner igen att den behöver använda en anpassad funktion för att svara
  3. Boten samlar in eventuell saknad information från kunden (t.ex. “Vad är ditt ordernummer?”)
  4. Plattformen skickar en förfrågan till ditt system (din webbplats, CRM eller något annat verktyg) med relevanta detaljer
  5. Ditt system svarar med datan (t.ex. orderstatus, spårningsnummer, leveransdatum)
  6. Boten läser svaret och formulerar ett naturligt svar: “Din beställning ORD-4582 har skickats och bör anlända senast fredag!”

Vad ett anpassat funktionsanrop kostar

Varje anpassat funktionsanrop debiteras enligt din agents AI-kvalitetsnivå:

AI-kvalitetsnivå Krediter per anpassat funktionsanrop Med din egen Anthropic-nyckel (BYOK) ansluten
Pro 1 kredit 0 krediter – körs på din nyckel
Economy (föråldrad) 0,5 krediter 0 krediter – körs på din nyckel
Max 0,25 krediter fortfarande 0,25 krediter, debiteras även med din egen nyckel ansluten, eftersom Max körs på vår egen modell
Mini 0,15 krediter fortfarande 0,15 krediter, debiteras även med din egen nyckel ansluten, eftersom Mini körs på vår egen modell

Konfigurera en anpassad funktion (steg för steg)

  1. I huvudsidofältet, under AI Studio, klicka på Custom Functions.
  1. Klicka på den gröna knappen + Add Function (eller New function) längst upp till höger.

Listan över anpassade funktioner visar en tabell med följande kolumner:

Kolumn Vad den visar
Namn Funktionsnamnet (t.ex. check_order_status)
Beskrivning En kort sammanfattning av vad funktionen gör (förkortas till 50 tecken i tabellen)
Metod HTTP-metoden som används, visas som en färgad bricka: GET (blå), POST (grön), PUT (orange), DELETE (röd)
Skapad Datumet då funktionen skapades

Detta gör det enkelt att snabbt skanna dina funktioner och hitta den du behöver.

Steg 1: Ge den ett namn och en beskrivning

Fält Vad du ska ange Exempel
Namn Ett kort namn med bokstäver, siffror och understreck check_order_status
Beskrivning Förklara vad den här funktionen gör (AI:n läser detta för att avgöra när den ska användas) “Slår upp aktuell status för en kunds beställning med hjälp av deras ordernummer”
Syfte (AI-åtgärd) Berätta för AI:n exakt när och hur den ska använda funktionen “Använd denna när en kund frågar om sin orderstatus, frakt eller leverans. Fråga efter deras ordernummer först.”

Tips: Var mycket specifik i beskrivningen och syftet. Ju tydligare du är med när funktionen ska användas, desto mer tillförlitligt kommer boten att använda den vid rätt tillfälle.

Steg 2: Konfigurera anslutningen

Du måste berätta för appen vart förfrågan ska skickas:

Fält Vad som ska anges Exempel
URL Webbadressen till ditt systems slutpunkt (den specifika adressen i ditt system som tar emot förfrågan och skickar tillbaka data) https://api.yourstore.com/v1/orders/status
Metod Typen av förfrågan som ska skickas Se alternativ nedan

Vilken metod du ska välja:

Metod När den ska användas
GET Slå upp information (orderstatus, lagerstatus, kontouppgifter)
POST Skapa nya poster (supportärenden, leads, bokningar) eller komplexa uppslag
PUT Uppdatera en befintlig post helt och hållet
PATCH Uppdatera en del av en befintlig post
DELETE Ta bort en post

Om du är osäker på vilken du ska använda, kontrollera med din utvecklare eller dokumentationen för systemet du ansluter till. GET (för sökningar) och POST (för att skapa poster) är de vanligaste.

Steg 3: Lägg till autentiseringshuvuden

De flesta system kräver autentisering för att acceptera förfrågningar. Lägg till alla nödvändiga huvuden:

Huvud Exempelvärde
Authorization Bearer your-api-key-here
Content-Type application/json

Säkerhetstips: Använd en dedikerad API-nyckel med begränsade behörigheter. Använd inte administratörsuppgifter.

Var hittar du API-nycklar: Kontrollera inställningarna eller utvecklarsektionen i systemet du ansluter till (t.ex. ditt CRM, din e-handelsplattform eller ditt bokningsverktyg).

Steg 4: Definiera indata (Vad boten skickar)

Indataparametrar är de informationsdelar som boten samlar in från konversationen och skickar till ditt system.

För varje parameter anger du:

Egenskap Vad det betyder
Namn Parameternamnet (måste matcha vad ditt system förväntar sig)
Typ Vilken typ av data det är (text, nummer, sant/falskt, etc.)
Beskrivning Berätta för AI:n vad denna information är och var den finns i konversationen
Obligatorisk Om inställd på Ja, kommer boten att fråga kunden efter denna information innan den fortsätter

Tillgängliga parametertyper:

Typ Vad det betyder
string Text (namn, ordernummer, adresser)
number Ett numeriskt värde (kvantitet, pris)
boolean Sant eller falskt (ja/nej-värden)
array En lista med objekt. Skickas som en riktig JSON-lista — i Run Test kan du skriva den som [8624], ["a", "b"] eller helt enkelt kommaseparerad (8624, 8625) så konverteras den åt dig. Om ditt API är strikt med vad listan innehåller — t.ex. endast siffror — ställ in den valfria Objekttyp bredvid typen så konverteras varje värde i listan till den.
query_param Text som skickas som en URL-parameter istället för i förfrågningskroppen. Använd detta när ditt API förväntar sig data i URL:en (t.ex. ?order_id=123).

Varje parameter har också ett valfritt fält för Sökväg för begärans brödtext (Request body path). Normalt skickas en parameter som ett fält på toppnivå i begärans brödtext (eller som ett frågesträngsvärde för typen query_param). Om din slutpunkt förväntar sig att den är nästlad istället — t.ex. {"order": {"id": "ORD-123"}} — ställer du in sökvägen till order.id så nästlar plattformen värdet åt dig.

Exempel: För en sökning av orderstatus kan du definiera:

  • order_number (string, obligatorisk): “Kundens ordernummer. Börjar vanligtvis med ORD- följt av siffror. Fråga kunden efter detta om de inte har nämnt det.”
  • email (string, valfri): “Kundens e-postadress för ytterligare verifiering. Behövs endast om ordernumret ensamt inte hittar en matchning.”

Vad ditt system tar emot automatiskt

Utöver de indataparametrar du definierar inkluderar plattformen automatiskt systemdata med varje förfrågan. Din slutpunkt tar emot detta i ett system-fält:

Systemfält Vad det innehåller
system.contactId Plattform-ID för kontakten i konversationen
system.campaignId Kampanj-ID som konversationen tillhör
system.userId Ditt användar-ID
system.channel Meddelandekanalen (t.ex. "whatsapp", "instagram")
system.contact Hela kontaktposten (namn, telefon, e-post, taggar, etc.)
system.campaign Kampanjkonfigurationen
system.test true om detta är ett test i “Prova på”, false för live-konversationer

Detta är användbart om ditt system behöver identifiera kontakten, kontrollera vilken kampanj som utlöste funktionen eller bete sig annorlunda under testning.

Behöver du inte systemdatan? Aktivera reglaget Hoppa över systemdata i funktionsbyggaren. Boten skickar då endast de indataparametrar du definierat — ingen kontakt- eller kampanjdata. Använd detta om din slutpunkt avvisar oväntade fält eller om du helt enkelt vill ha en mer slimmad nyttolast.

Steg 5: Testa den, låt sedan boten läsa svaret

Du behöver normalt inte mappa svarsfält alls. När din slutpunkt svarar läser boten hela JSON-svaret och använder din funktions Beskrivning och Syfte (AI-åtgärd) — plus varje parameters egen beskrivning — för att räkna ut vad som är viktigt och presentera det på ett naturligt sätt. En tydlig beskrivning av själva funktionen (“Hämtar aktuell status för en kundorder inklusive fraktinformation och spårning”) gör mer nytta här än vad mappning fält för fält skulle göra.

Om din slutpunkt returnerar ett stort svar och du bara vill att boten ska se några specifika värden, öppna avsnittet Svarsmappning (som är dolt som standard, precis ovanför Test). Varje rad väljer ett fält på toppnivå från svaret: Svarsfält är fältnamnet i ditt API:s JSON-svar, och Utdatafält är namnet som boten tar emot det under. Med minst en rad ifylld får boten endast dina mappade värden istället för hela svarsbrödtexten. Lämna avsnittet tomt för att behålla standardbeteendet med fullständigt svar.

Innan du sparar, använd Test-sektionen längst ner i byggverktyget för att skicka begäran exakt som konfigurerat och se det faktiska svaret utan att lämna appen:

Svaret du ser här är slutpunktens råsvar. Om du har konfigurerat Svarsmappning ovan tar boten i en riktig chatt endast emot dessa mappade fält — testet visar alltid hela råsvaret så att du kan se vad som finns tillgängligt att mappa. Om något ser fel ut (oväntade fältnamn, extra nästling), åtgärda det på din slutpunkt eller justera din mappning.


Tilldela funktioner till en agent

När du har skapat en anpassad funktion måste du tala om för varje agent vilka funktioner den får använda:

  1. Öppna Agenten under AI Studio → AI-agenter.
  2. Gå till fliken AI-förmågor. (För en kampanj som fortfarande har sina egna AI-inställningar direkt istället för via en separat agent, visas samma lista i kampanjens eget steg AI-förmågor istället.)
  3. Du ser en lista över varje anpassad funktion du har skapat. Aktivera varje funktion som du vill att denna agents bot ska kunna anropa.
  4. Klicka på Spara ändringar längst ner. Valen tillämpas först när de har sparats.

Endast tilldelade funktioner är tillgängliga för boten för den agenten. Detta förhindrar att boten av misstag använder funktioner som inte är relevanta.


Testa dina anpassade funktioner

Innan du går live, testa noggrant:

  1. Kör det inbyggda testet - Använd Test-sektionen inuti funktionsbyggaren (se ovan) för en snabb kontroll utan att lämna appen — fyll i realistiska värden och klicka på Kör test.
  2. Testa systemets slutpunkt direkt - För hela checklistan nedan gräver ett dedikerat verktyg som Postman (eller din utvecklare) djupare än ett enstaka Kör test.
  3. Testa i Prova på - Simulera en konversation där kunden frågar något som bör utlösa funktionen.
  4. Kontrollera svaret - Se till att boten korrekt läser och presenterar datan.
  5. Testa felscenarier - Vad händer om kunden anger ett ogiltigt ordernummer? Vad händer om ditt system ligger nere tillfälligt?

När testet returnerar 401 eller 403

En 401 eller 403 innebär att din slutpunkt tog emot anropet men nekade det. Ledtråden är att ingenting syns i dina egna loggar — de flesta verktyg avvisar ett obehörigt anrop innan arbetsflödet ens startar, så det finns ingenting att se på din sida och det ser ut som om anropet aldrig kom fram.

Detta beror nästan alltid på en autentiseringskonflikt: din slutpunkt kräver en viss typ av inloggningsuppgifter och funktionen skickar en annan. Kontrollera att headern du lade till i Steg 3 är exakt den som ditt system förväntar sig.

Den vanligaste varianten av detta är en webhook som skyddas med Basic Auth (n8n, Make och de flesta självhostade verktyg erbjuder detta som en kryssruta på själva webhooken) medan funktionen skickar en anpassad hemlig header som X-My-Secret. Basic Auth accepterar endast en Authorization-header, så en anpassad header ignoreras och anropet avvisas. Du har två alternativ:

  • Stäng av Basic Auth på webhooken och kontrollera din anpassade header inuti arbetsflödet istället.
  • Behåll Basic Auth aktiverat och lägg till en Authorization-header i funktionen vars värde är ordet Basic följt av din base64-kodade username:password.

Båda fungerar — se bara till att båda sidor är överens.

När testet returnerar 404

Slutpunkts-URL:en är felaktig eller så är arbetsflödet inte publicerat. I n8n har varje webhook specifikt en separat Test-URL och Production-URL, och test-URL:en lyssnar bara så länge du har redigeraren öppen. Kopiera Production-URL:en och se till att arbetsflödet är aktivt.

Se fel i Testa och Chattar

När AI:n anropar en anpassad funktion under en konversation och anropet misslyckas – felaktiga inloggningsuppgifter, slutpunkt nere, timeout – visas detta nu i konversationen: en röd “(funktionsnamn) misslyckades”-markör visas i tråden, både i agentens flik Testa och i riktiga konversationer i Chattar. Klicka på markören för att expandera detaljerna: statuskoden som din slutpunkt returnerade och dess svarstext, vilket oftast räcker för att du ska veta exakt vad som behöver åtgärdas (en 401 med ett “unauthorized”-meddelande betyder fel i autentiseringshuvudet, en timeout betyder att din slutpunkt tog längre tid än 30 sekunder).

Lyckade anrop visar också en markör – klicka på den för att se vad din slutpunkt faktiskt skickade tillbaka. Detta är det snabbaste sättet att felsöka en integrering från början till slut: ha testkonversationen öppen i Testa, klicka sedan på funktionsmarkören för att se det faktiska resultatet av anropet utan att lämna sidan.


Komplett exempel: Sökning av orderstatus

Här är ett fullständigt konfigurerat exempel som du kan använda som mall:

Grundläggande information:

  • Namn: check_order_status
  • Beskrivning: “Hämtar aktuell status för en kundorder, inklusive fraktinformation och spårning”
  • AI-åtgärd: “Anropa denna när en kund frågar om sin orderstatus, var paketet befinner sig eller när det kommer fram. Be alltid om ordernumret först.”

Anslutning:

  • URL: https://api.mystore.com/orders/lookup
  • Metod: POST

Rubriker:

  • Authorization: Bearer sk_live_abc123
  • Content-Type: application/json

Indataparametrar:

  • order_number (text, obligatorisk): “Ordernumret som kunden har angett”
  • customer_email (text, valfri): “Kundens e-postadress för ytterligare verifiering”

Ingen svarsmappning behövs — med en tydlig beskrivning och AI-åtgärd redan inställd ovan, läser boten vilken JSON som helst som din slutpunkt returnerar (status, spårningsnummer, leveransdatum, artiklar) och räknar ut hur den ska prata om det.

Hur konversationen ser ut:

Kund: Hej, var är min order?

Bot: Hej! Jag hjälper dig gärna att kontrollera din order. Kan du dela med dig av ditt ordernummer?

Kund: Det är ORD-78234

Bot: Låt mig söka upp det åt dig…

Din order ORD-78234 har skickats och är på väg! Det beräknade leveransdatumet är den 10 mars. Du kan spåra ditt paket här: https://tracking.example.com/1Z999AA1

Är det något annat jag kan hjälpa dig med?


Komplett exempel: Shopify-orderstatus

Om butiken körs på Shopify behöver du ingen utvecklare för att bygga en uppslags-endpoint — Shopifys eget system kan svara på orderfrågor direkt. (För produkt- och lagerfrågor i en Shopify-butik behöver du inte ens en anpassad funktion: anslut butikens inbyggda server istället — se Anslut en Shopify-butik.)

Skapa först en åtkomsttoken i Shopify. Shopify ändrade detta under 2026: appar kan inte längre skapas inuti Shopify-admin, och den nya app-skärmen ger dig ett Client ID och en Client secret istället för en färdig token. Stegen nedan omvandlar dessa till en permanent token. Räkna med cirka tio minuter, en gång per butik. (Om butiken redan har en äldre app skapad på det gamla sättet fortsätter dess befintliga token att fungera — hoppa direkt till den anpassade funktionen nedan.)

  1. Gå till Shopify Dev Dashboard på dev.shopify.com, öppna din organisation och klicka på Apps → Create app. Ge den ett namn, till exempel Order lookup.
  2. Ge appen behörigheten read_orders, publicera en version och installera appen i butiken.
  3. Öppna appens Settings och lägg till butikens egen webbadress (till exempel https://www.yourstore.com/) till de tillåtna omdirigeringsadresserna (redirect URLs). Spara.
  4. Fortfarande under Settings, kopiera Client ID och Client secret.
  5. I en webbläsare där du är inloggad på butikens Shopify-admin, öppna adressen nedan och ersätt butiksnamnet, klient-ID:t och omdirigeringsadressen med dina egna: https://YOUR-STORE.myshopify.com/admin/oauth/authorize?client_id=YOUR-CLIENT-ID&scope=read_orders&redirect_uri=https://www.yourstore.com/&state=12345 Godkänn skärmen som visas. Webbläsaren hamnar på din omdirigeringsadress och adressfältet innehåller nu code= följt av ett långt värde — kopiera det värdet. Det är bara giltigt i ett par minuter, så gå direkt till nästa steg.
  6. Byt ut den koden mot token, vilket du kan göra i Your AI Connector. I byggverktyget för anpassade funktioner, ställ in Method till POST och URL till https://YOUR-STORE.myshopify.com/admin/oauth/access_token, lägg till tre textindataparametrar med namnen client_id, client_secret och code, klicka sedan på Test, fyll i de tre värdena och kör det. Svaret innehåller access_token — det är din permanenta token. Kopiera den till en säker plats, rensa sedan byggverktyget och ställ in den riktiga funktionen nedan.

Ställ sedan in den anpassade funktionen:

Grundläggande information:

  • Namn: check_shopify_order
  • Beskrivning: “Slår upp en order i butikens Shopify-system och returnerar dess status, spårning och artiklar”
  • AI-åtgärd: “Anropa denna när en kund frågar om sin orderstatus eller leverans. Be alltid om ordernumret först.”

Anslutning:

  • URL: https://YOUR-STORE.myshopify.com/admin/api/2026-01/orders.json?status=any — ersätt YOUR-STORE med butikens .myshopify.com-namn (denna adress använder den tekniska Shopify-domänen, inte butikens anpassade domän)
  • Metod: GET

Rubriker:

  • X-Shopify-Access-Token: shpat_... (token från ovan)

Indataparametrar:

  • name (query_param, obligatorisk): “Kundens ordernummer exakt som det visas i orderbekräftelsen, inklusive #-tecknet — till exempel #1001. Be kunden om det om de inte har nämnt det.”

Ingen svarsmappning behövs — boten läser den returnerade ordern (betalningsstatus, leveransstatus, spårning, artiklar) och svarar naturligt.

Bra att veta: en token som skapats på detta sätt kan se ordrar från de senaste 60 dagarna — gott om tid för dagliga supportfrågor, men inte en fullständig orderhistorik.


Komplett exempel: Boka en tid

Grundläggande information:

  • Namn: create_booking
  • Beskrivning: “Skapar en ny bokning i vårt bokningssystem”
  • AI-åtgärd: “Använd denna efter att ha bekräftat datum, tid och kontaktuppgifter med kunden. Anropa inte förrän kunden uttryckligen har bekräftat att de vill boka.”

Anslutning:

  • URL: https://booking.mycompany.com/api/appointments
  • Metod: POST

Indataparametrar:

  • date (text, obligatorisk): “Bokningsdatum i formatet ÅÅÅÅ-MM-DD”
  • time (text, obligatorisk): “Bokningstid i formatet TT:MM”
  • name (text, obligatorisk): “Kundens fullständiga namn”
  • phone (text, obligatorisk): “Kundens telefonnummer”
  • service_type (text, obligatorisk): “Typ av tjänst som bokas”

Komplett exempel: Lägg till en nyhetsbrevsprenumerant i ditt CRM

Ett mycket vanligt mönster: boten har svarat klart, erbjuder nyhetsbrevet, kontakten svarar med sin e-postadress, och den adressen ska hamna direkt i ditt e-postverktyg. De flesta CRM-system (FluentCRM, ActiveCampaign, MailerLite, Brevo med flera) accepterar ett enkelt POST-anrop för just detta, så ingen automatiseringsplattform behövs däremellan.

Detta exempel använder FluentCRM på WordPress. Strukturen är densamma för alla andra verktyg som ger dig en “inkommande webhook” eller en slutpunkt för att “skapa prenumerant”.

Först, hämta URL:en från ditt CRM. I WordPress, öppna FluentCRM → Inställningar → Inkommande webhooks och skapa en webhook. Välj lista, taggar och prenumerationsstatus som nya kontakter ska få, och kopiera sedan webhook-URL:en som genereras. Allt du ställer in här tillämpas automatiskt, så boten behöver bara skicka e-postadressen.

Ställ sedan in den anpassade funktionen:

Grundläggande information:

  • Namn: add_newsletter_subscriber
  • Beskrivning: “Lägger till en person i vår nyhetsbrevslista med hjälp av e-postadressen de angav i chatten”
  • AI-åtgärd: “Använd denna i samma ögonblick som kontakten går med på att prenumerera på nyhetsbrevet och anger sin e-postadress. Anropa den inte innan de faktiskt har angett en adress, och anropa den inte två gånger för samma person.”

Anslutning:

  • URL: webhook-URL:en du kopierade från ditt CRM
  • Metod: POST

Indataparametrar:

  • email (sträng, obligatorisk): “E-postadressen som kontakten angav i konversationen”
  • first_name (sträng, valfri): “Kontaktens förnamn, om de nämnde det”

Hoppa över systemdata: slå denna. Ditt CRM behöver bara fälten ovan, och en mindre nyttolast undviker fel från verktyg som avvisar oväntade fält.

Svarsmappning: behövs inte här. Ingenting behöver skickas tillbaka för att boten ska kunna fortsätta.

Glöm inte att aktivera funktionen för den agent som kör konversationen (se Tilldela funktioner till en agent). Detta är den vanligaste anledningen till att en korrekt byggd funktion aldrig körs.

Tips: boten har också ett inbyggt verktyg för att uppdatera kontaktens e-postadress, vilket sparar adressen i kontaktposten inuti plattformen. Det är separat från denna funktion och användbart vid sidan av den — det inbyggda verktyget håller din egen kontaktpost komplett, medan den anpassade funktionen skickar adressen till ditt CRM.


Tips för tillförlitliga anpassade funktioner

  1. Se till att upprepade förfrågningar är säkra. Om samma förfrågan av misstag skickas två gånger bör den inte skapa dubbletter. Nätverksproblem kan ibland orsaka detta.

  2. Returnera tydliga felmeddelanden. Om något går fel på ditt systems sida, returnera ett läsbart felmeddelande. Boten kommer att vidarebefordra det till kunden på ett smidigt sätt.

  3. Håll svarstiderna under 10 sekunder. Om ditt system tar längre tid, överväg att returnera en snabb bekräftelse först.

  4. Hantera utgångna eller ogiltiga autentiseringsuppgifter. Om din API-nyckel går ut, se till att felmeddelandet är tydligt så att boten vet att den ska varna en människa istället för att försöka igen.

  5. Skriv detaljerade beskrivningar. AI:n använder dina beskrivningar för att räkna ut när funktionen ska anropas och hur rätt information ska extraheras från konversationen. Vaga beskrivningar leder till misstag.

  6. Testa med riktiga konversationer. “Prova på” är utmärkt för inledande tester, men övervaka dina första live-konversationer för att säkerställa att allt fungerar med riktiga kundfrågor.

  7. Håll loggar på din sida. Be din utvecklare att logga förfrågningarna som kommer från appen så att du snabbt kan felsöka eventuella problem.

  8. Använd en offentlig slutgiltig URL. Din funktions-URL måste vara en offentlig webbadress (HTTP/HTTPS). Interna adresser, localhost och adresser i privata nätverk avvisas av säkerhetsskäl, och plattformen följer inte omdirigeringar — peka funktionen direkt mot den slutgiltiga URL:en, inte mot en som omdirigerar till den.


Körningsbegränsningar

Varje anpassad funktion har en valfri sektion för Körningsbegränsningar längst ner i editorn. Den styr hur ofta AI:n får köra funktionen och om ett tidigare resultat kan återanvändas. Allt här är valfritt — lämna allt tomt så fungerar funktionen precis som tidigare.

Skrivskyddad funktion. Aktivera detta om din funktion endast läser data — en aktiekursuppslagning, en priskontroll, en sökning av orderstatus — och aldrig skapar eller ändrar någonting. När ett tillfälligt nätverksproblem avbryter AI:n mitt i ett svar kan plattformen säkert försöka köra konversationssteget igen istället för att lämna kunden utan svar. Aktivera endast detta om funktionen verkligen aldrig skriver något: en funktion som skapar poster måste förbli avstängd, så att ett nytt försök aldrig av misstag kör den två gånger.

Använd cachat resultat vid upprepade anrop. När AI:n anropar funktionen igen med samma indata (till exempel om kunden ställer samma fråga två gånger), återanvänds det tidigare resultatet istället för att anropa din slutpunkt igen. Cachade resultat sparas i upp till 24 timmar, och ett anrop med annan indata går alltid direkt till din slutpunkt.

Max antal körningar per konversation. Ett hårt tak för hur många gånger funktionen får köras inom en konversation. Ställ in den på 1 för funktioner som bara ska köras en gång per chatt — generera en offert, trigga en återuppringning, starta en automatisering. När taket nås får AI:n veta att funktionen redan har körts och får det senaste resultatet, så att den fortfarande kan svara kunden istället för att bli tyst.

Max antal körningar per tidsfönster. En hastighetsbegränsning över tid: till exempel högst 5 körningar inom 60 minuter. Användbart för funktioner som anropar betalda tredjepartstjänster eller triggar tyngre automatiseringar. Båda rutorna måste fyllas i tillsammans (antal körningar och ett fönster i minuter, upp till 7 dagar).

Några saker att känna till:

  • Begränsningar räknar endast lyckade körningar. Ett anrop som misslyckades på din slutpunkts sida förbrukar inte budgeten.
  • När en körning blockeras av en begränsning lämnas kunden aldrig hängande — AI:n får veta varför och arbetar vidare med den information den redan har.
  • Begränsningar gäller överallt där funktionen körs: vanliga chattar i alla kanaler och funktioner som hanteras av en automatisering. Testkonversationer i “Try Out” räknas inte och begränsas inte.

Inbyggda botverktyg

Utöver de anpassade funktioner du bygger själv, levereras plattformen med ett bibliotek av förbyggda verktyg som AI-boten kan använda under en konversation. Dessa täcker de vanligaste sakerna en bot behöver göra — varna en teammedlem, boka ett möte, tagga en kontakt, söka på din webbplats, schemalägga en uppföljning med mera — så att du inte behöver koppla ihop dem från grunden.

Boten avgör själv när den ska använda varje verktyg baserat på vad som händer i konversationen och hur din agent (och dess kopplade kampanj) är konfigurerad. De flesta av dessa verktyg aktiveras automatiskt när den relaterade funktionen aktiveras (till exempel blir bokningsverktygen tillgängliga först när du ansluter en kalender och aktiverar bokningar).

Kreditkostnad: Varje verktygsanrop debiteras enligt din agents AI-kvalitetsnivå, och anpassade funktioner som du bygger själv debiteras på samma sätt:

AI-kvalitetsnivå Krediter per verktygsanrop Med din egen Anthropic-nyckel (BYOK) ansluten
Pro 1 kredit 0 krediter – körs på din nyckel
Economy (föråldrad) 0,5 krediter 0 krediter – körs på din nyckel
Max 0,25 krediter fortfarande 0,25 krediter, debiteras även med din egen nyckel ansluten, eftersom Max körs på vår egen modell
Mini 0,15 krediter fortfarande 0,15 krediter, debiteras även med din egen nyckel ansluten, eftersom Mini körs på vår egen modell

Team- och uppgiftsverktyg

Verktyg Vad det gör När boten använder det
Varna en teammedlem Pausar boten för denna kontakt och mejlar ditt team om att en människa behövs. Chatten flaggas så att en kollega kan ta över. När kunden ber om att få prata med en människa, är frustrerad eller frågar något som boten inte får eller kan svara på.
Skapa en uppgift Skapar en ny uppgift på din uppgiftstavla, valfritt länkad till kontakten och konversationen. Boten fortsätter svara som vanligt – uppgiften är bara en notering för ditt team att följa upp. För icke-brådskande ärenden som en funktionsförfrågan, en merförsäljningsmöjlighet eller en återuppringning som teamet bör hantera senare.
Föreslå en FAQ-uppdatering När boten stöter på en fråga den inte kan besvara bra, skapar den en uppgift som ber ditt team att lägga till ett svar i kunskapsbasen. När en kontakt frågar något som inte täcks av dina befintliga FAQ:er – så att luckan täpps till till nästa gång.
Lägg till kontext till ett FAQ-förslag Om en annan kontakt senare ställer en liknande fråga ur en annan vinkel, lägger boten till den kontexten till det befintliga FAQ-förslaget istället för att skapa en dubblettuppgift. Automatiskt – håller din uppgiftslista ren när flera personer tar upp samma kunskapslucka.

Kontaktverktyg

Verktyg Vad det gör När boten använder det
Taggning Körs automatiskt efter varje botsvar — det är inte ett verktyg som den kundvända boten väljer att anropa. Systemet granskar den senaste konversationen och tillämpar relevanta taggar, återanvänder dina befintliga taggar där det är möjligt (och skapar en ny endast när det behövs). Automatiskt — närhelst konversationen avslöjar något värt att segmentera på, såsom intresse, avsikt, lead-kvalitet eller språk.
Uppdatera kontaktnamn Sparar kontaktens för- och/eller efternamn när de delar det. När kunden presenterar sig eller korrigerar ett namn.
Uppdatera kontakt-e-post Sparar kontaktens e-postadress när de delar den. När kunden anger en e-postadress — för nyhetsbrev, kvitton, kontosökningar, etc.

Verktyg för tidsbokning

Dessa verktyg är endast tillgängliga när bokningar är aktiverade för kampanjen som är kopplad till din agent, och en kalenderhändelsetyp är konfigurerad.

Verktyg Vad det gör När boten använder det
Kontrollera lediga tider Söker efter vilka tider som är lediga i din anslutna kalender för ett visst datum eller datumintervall. När kunden vill boka och boten behöver erbjuda faktiska lediga tider.
Boka en tid Skapar bokningen i din kalender och bekräftar bokningen för kunden. Efter att kunden har bekräftat ett specifikt datum och tid.
Flytta en bokning Ändrar tid för en befintlig bokning till ett nytt datum och tid. När kunden ber om att få boka om.
Avboka en tid Avbokar en befintlig bokning. När kunden ber om att få avboka.
Sök efter bokningar Hämtar en kontakts befintliga bokningar så att boten vet vad som redan är inbokat. När kunden frågar “när har jag min bokning?” eller innan boten erbjuder ombokning.

Kunskaps- och webbverktyg

Verktyg Vad det gör När boten använder det
Sök på din webbplats Skannar de webbadresser du har lagt till i kampanjens lista över dynamiska webbadresser för att hitta produktsidor, artiklar eller annat innehåll som besvarar kundens fråga. Endast tillgängligt när AI-webbsökning är aktiverat och du har lagt till minst en dynamisk webbadress. Om AI-webbsökning är avstängt kan boten inte läsa sidor eller länkar – inte ens de som kunden klistrar in i chatten. När kunden frågar om något som troligen finns på din webbplats – produkter, priser, platser, policyer.
Kontrollera en länk Läser innehållet på en specifik webbadress så att boten kan svara på frågor om den sidan. Endast tillgängligt när AI-webbsökning är aktiverat och du har lagt till minst en dynamisk webbadress. Om AI-webbsökning är avstängt kan boten inte läsa sidor eller länkar – inte ens de som kunden klistrar in i chatten. När kunden delar en länk eller frågar om en specifik sida på din webbplats.
Sök på webben Kör en offentlig Google-sökning och returnerar toppresultaten, så att boten kan svara på frågor utanför ditt eget innehåll. När kunden frågar om något allmänt (t.ex. vägbeskrivningar, offentlig information) som inte finns i din kunskapsdatabas. Används endast om webbsökning är aktiverat.

Uppföljningsverktyg

Dessa verktyg kräver att uppföljningar är aktiverade för den kampanj som är kopplad till din agent.

Verktyg Vad det gör När boten använder det
Schemalägg en smart uppföljning Schemalägger ett intelligent uppföljningsmeddelande med hjälp av din uppföljningssekvens – väljer rätt mall och tidpunkt baserat på konversationen. När kunden blir tyst eller ber boten att “återkomma senare”.
Schemalägg en uppföljning Schemalägger en grundläggande uppföljning vid en specifik tidpunkt. När boten behöver driva konversationen framåt vid ett bestämt tillfälle.

Körning av anpassade funktioner

Verktyg Vad det gör När boten använder det
Kör en anpassad funktion Utför en av de anpassade funktioner du har skapat och tilldelat agenten (se resten av denna sida). När kundens förfrågan matchar syftet med en av dina anpassade funktioner.

Verktyg för restaurangbokning (Zenchef och Formitable)

Dessa verktyg är endast tillgängliga när en Zenchef- eller Formitable-integration är ansluten. De låter boten hantera restaurangbokningar från början till slut.

Verktyg Vad det gör När boten använder det
Kontrollera restaurangens tillgänglighet Söker efter lediga bokningstider för ett visst datum, antal personer och (valfritt) sittområde. När en gäst ber om att få boka ett bord.
Skapa en restaurangbokning Skapar en ny bokning. Efter att gästen har bekräftat en specifik tid.
Uppdatera en restaurangbokning Ändrar datum, tid, antal personer eller anteckningar för en befintlig bokning. När gästen ber om att få ändra sin bokning.
Avboka eller ändra bokningsstatus Avbokar en bokning eller uppdaterar dess status (t.ex. bekräftad, utebliven gäst). När gästen avbokar, eller när boten behöver markera en statusändring.
Sök efter bokningar Hittar befintliga bokningar som matchar kriterier som namn, e-post eller datum. När en återkommande gäst frågar om en befintlig bokning.
Uppdatera gästprofil Uppdaterar gästens profil i restaurangsystemet (preferenser, anteckningar, kontaktuppgifter). När gästen delar med sig av kostpreferenser, ett nytt telefonnummer eller annan information på profilnivå.
Lista restaurangprodukter Hämtar listan över menyer, fasta menyer eller tillval som är tillgängliga för bokning. När gästen frågar “vilka fasta menyer har ni?” eller boten behöver bifoga en meny till en bokning.

Aktivera och inaktivera verktyg

De flesta verktyg styrs på agentens flik AI-förmågor (eller kampanjens steg AI-förmågor, om du arbetar från en fortfarande klassisk kampanj):

  • Bokningsverktyg aktiveras när du aktiverar bokningar och ansluter en kalender – detta förblir en inställning per kampanj tills vidare, med en länk direkt till kampanjens steg från agentens egen flik för AI-förmågor
  • Uppföljningsverktyg aktiveras när du aktiverar uppföljningar
  • Restaurangverktyg aktiveras när du ansluter ett Zenchef- eller Formitable-konto
  • Webbsökning har en egen växel på fliken FAQ & Kunskap
  • Uppgiftsverktyg kan stängas av per agent med växeln Tillåt AI att skapa uppgifter (de är på som standard; den kontoomfattande uppgiftsväxeln i Inställningar → Profil → Funktioner stänger av hela uppgiftssystemet överallt)
  • Kontaktuppdateringsverktyg styrs på samma flik AI-förmågor – huruvida AI:n får byta namn på kontakter eller spara extra insamlad information om dem
  • Aviseringsverktyg är alltid tillgängliga; taggning körs automatiskt efter varje botsvar (det är inte ett verktyg som boten väljer att anropa)

Om du vill att boten ska sluta använda ett specifikt inbyggt verktyg är det enklaste sättet att inaktivera den underliggande funktionen (till exempel, stäng av bokningar för att inaktivera alla bokningsverktyg).


Funktioner som hanteras av en automatisering

Vissa poster på din sida för anpassade funktioner kan ha en etikett för Hanteras av automatisering. Dessa har inte skapats här – de kommer från en automatisering med en AI-agentfunktion-utlösare, vilket ger din agent en förmåga vars steg du bygger visuellt på automatiseringsytan istället för att peka på en extern webbadress.

En hanterad funktion sköts åt dig: dess namn, beskrivning och fält följer alltid det som ställts in för automatiseringens utlösare, så den kan inte redigeras eller tas bort från den här sidan — använd länken Öppna automatisering och ändra själva automatiseringen. Du kan fortfarande välja vilka agenter som ska ha den på vanligt sätt: på en agents flik AI-förmågor visas den tillsammans med agentens andra förmågor med en vanlig på/av-växlare (om dess automatisering är pausad anges detta på raden — förmågan aktiveras när automatiseringen slås på). Allt annat kring den fungerar som vilken annan anpassad funktion som helst: AI:n avgör när den ska anropas, samlar in de detaljer du definierat och kan använda automatiseringens svar i samma konversation.

Om du väljer mellan de två: peka en vanlig anpassad funktion mot ett system som redan har en adress att anropa; bygg en automatisering med en AI Agent Function-utlösare när arbetet är något du hellre vill sätta ihop steg för steg – slå upp något i ett kalkylblad eller en databas, förgrena baserat på ett villkor, skapa poster – utan att köra en egen server. Se Automatiseringar.


Planeringskrav

Anpassade funktioner är tillgängliga i abonnemang som inkluderar funktionen för anpassade funktioner. Kontrollera ditt abonnemang för att bekräfta tillgänglighet.


Nästa steg

  • Anslut MCP-servrar till din bot – ett färdigt paket med verktyg istället för en funktion i taget.
  • AI-agenter – huvudsidan för AI Studio-gruppen där anpassade funktioner finns, och där anpassade funktioner tilldelas en bot.