Ugrás a fő tartalomra

AppSheet-ben a Bots (Automatizálások) szerepe

  AppSheet-ben a Bots (Automatizálások)  szerepe


Az AppSheet-ben a Bots (Automatizálások) a háttérben futó, szerver-oldali automatizálási motor, amely az alkalmazás "agya és reflexei".Míg az Actions elsősorban a felhasználó által indított interakciókat (gombok, kattintások) szolgálják ki, addig a Bots akkor is dolgoznak, amikor senki nem használja éppen az appot.Bots vs Actions – gyors összehasonlító táblázat (2025-ös állapot)
Jellemző
Actions
Bots (Automation)
Melyiket válaszd?
Kiváltás módja
Felhasználó kattint / csoportos művelet
Esemény (data change), ütemezett, webhook
Felhasználó → Action Háttér → Bot
Hol fut?
Elsősorban kliens + bizonyos szerver
Kizárólag szerveren (cloud)
Bots sokkal megbízhatóbb háttérben
Válaszidő
Gyakorlatilag azonnali
5–90 másodperc késés tipikus (átlag 10–40 mp)
Ha azonnal kell látni → Action
Navigáció, űrlap nyitás
Igen (LINKTO...)
Nem (csak nagyon korlátozottan)
Navigáció → Action
Felhasználó látja a folyamatot?
Igen (toast üzenetek, hibák)
Nem (audit history-ban lehet visszanézni)
Látható visszajelzés → Action
Tömeges művelet nagy adathalmazra
Közepes (client oldali korlátok)
Jobb (de még mindig óvatosan!)
Nagy bulk → Bot
Komplex logika, elágazás
Gyenge–közepes
Nagyon erős (feltételek, loop, több ág)
If–then–else lánc → Bot
Külső rendszer hívása
Korlátozott (webhook csak Action-ből)
Nagyon erős (webhook, email, SMS, Google Chat, API)
Integráció → Bot
Ütemezett futás
Nem
Igen (óránként, naponta, hetente stb.)
Időzített feladat → Bot
Trigger loop kockázata
Alacsony
Nagyon magas (vigyázni kell!)
Mindig Only if + állapotváltozás
Ingyenes terv korlát
Majdnem teljes
Email, schedule, bizonyos task-ok korlátozott
Ingyenesen is lehet játszani, de korlátozott
A Bots fő részei (felépítés 2025-ben)
Bot
├── Event (Esemény)               – Mi váltja ki? (mikor induljon?)
│   ├── Data change (leggyakoribb)
│   ├── Schedule (ütemezett)
│   ├── Webhook / Custom event
│   └── (ritkábban) External event
│
├── Condition (Opcionális)        – Csak akkor fusson, ha...
│
└── Process (Folyamat)            – Mit csináljon? (több lépés is lehet)
    ├── Task-ok sorozata
    │   ├── Data: adatmanipuláció (add/update/delete rows)
    │   ├── Call a process (további folyamat hívása)
    │   ├── Call webhook
    │   ├── Send email / SMS / notification
    │   ├── Call script (JavaScript)
    │   ├── Create a document (PDF, Google Docs sablon)
    │   ├── Google Chat üzenet
    │   └── Wait (várakozás lépések között – ritka)
    │
    └── Elágazások (Branch)       – Ha … akkor ez, különben az
Gyakori valós példák + ajánlott megközelítés
#
Üzleti igény
Legjobb trigger
Főbb lépések / task-ok
Action vagy Bot?
Megjegyzés / Csapda
1
Új megrendelés → értesítés vezetőnek
Data change – Add
Send email + Google Chat üzenet
Bot
Legklasszikusabb bot használat
2
Minden este 22:00 lejárt feladatok "Késésben"
Schedule (daily)
Execute data action on set of rows
Bot
Nagyon hasznos háttértakarítás
3
Ha kész a munka → küldj PDF számlát + email
Data change – Update + feltétel
1. Create document → 2. Send email
Bot
Nagyon erős kombináció
4
Alacsony készlet → Chat üzenet raktárosnak
Data change + feltétel
Call webhook → Google Chat
Bot
Nagyon népszerű retail/logisztika
5
Új dolgozó → automatikusan létrehozni 5 feladatot
Data change – Add
5× Add new row (több task)
Bot
Gyakori onboarding folyamat
6
30 napja nem volt aktivitás → inaktiválás
Schedule + komplex filter
Update rows + státusz váltás
Bot
Nagyon jó adatkarbantartás
7
"Kész" gomb + azonnali email
Felhasználó kattint
Grouped action: update + send email
Action → Bot
Action indít Bot-ot (ha kell szerver oldali)
8
Külső rendszerből adat érkezik → feldolgozás
Webhook
Parse JSON → több adatmanipuláció
Bot
B2B integrációk alapja
Legjobb gyakorlatok & legnagyobb buktatók (2025)
Ajánlott
Nagyon gyakran hibázunk benne
Kis, újrafelhasználható task-okat készíts
Egyetlen 12 lépéses szörny-bobot
Minden botnak legyen állapotváltoztató oszlop
Loop keletkezik (→ végtelen futás, quota eszik)
Használj "Only if" / Condition-t nagyon szigorúan
Bot minden egyes sor módosításra lefut
Első task legyen logolás vagy teszt email
Nem látod, hogy elindult-e egyáltalán
Audit history-t nézd hiba esetén
Csak a "nem működik" tünetet látod
Kezdd schedule event-tel kis adathalmazon
Nagy táblán rögtön timeout / quota túllépés
Használj reusable task-okat
Minden botban ugyanazt a logikát 10× megírod
Összefoglaló – hol illik a Bots az AppSheet fejlesztési folyamatba?Általános jó sorrend (2025-ben):
  1. Adatmodell + táblák, relációk
  2. Alap nézetek + szeletek (slices)
  3. Actions → felhasználói interakciók, gombok, gyors műveletek
  4. Szépítés, UX, dashboardok, navigáció
  5. Bots → háttér automatizálások, értesítések, időszakos takarítás, integrációk
  6. Tesztelés audit history + monitor segítségével
  7. Finomhangolás (security filters, performance)
Legfontosabb gondolati váltás:
Az Actions az "emberrel együtt dolgozik", a Bots pedig "helyette dolgozik, amikor ő már nincs ott".
Ha egy folyamatnak legyen azonnali látható visszajelzése a felhasználónak → Action
Ha történjen meg akkor is, ha senki nem nézi az appot → Bot-ot


A raktárkezelés a legjobb "iskolapélda", mert azonnal látványos eredményt ad, és lefedi a logikai alapokat.

Mivel szakértőként beszélünk, nemcsak azt mutatom meg, hogy hova kattints, hanem hogy hogyan építsd fel a logikát, hogy az alkalmazásod stabil és bolondbiztos legyen.


A Forgatókönyv (Scenario)

Képzeljünk el egy Raktarkeszlet nevű táblát a Google Sheet-ben (vagy adatbázisban) a következő oszlopokkal:

  • ID (Egyedi azonosító, pl. cikkszám)

  • TermekNev (Pl. "HDMI Kábel 2m")

  • Mennyiseg (Aktuális darabszám, pl. 50)

  • MinimumSzint (Jelzési szint, pl. 10)

  • UtolsoMozgas (Mikor nyúltak hozzá utoljára)

Három konkrét Action-t fogunk elkészíteni, nehézségi sorrendben.


1. Szint: A "Gyors Gomb" (Inline Action)

Cél: A raktáros a lista nézetben állva, egyetlen gombnyomással tudja növelni a készletet (+1), anélkül, hogy megnyitná a termék adatlapját.

Lépések:

  1. Menj az Actions fülre -> New Action.

  2. Action Name: Gyors_Novel

  3. For a record of this table: Raktarkeszlet

  4. Do this: Data: set the values of some columns in this row

  5. Set these columns:

    • Válaszd ki a Mennyiseg oszlopot.

    • Képlet: [Mennyiseg] + 1

  6. Appearance (Megjelenés):

    • Display Name: +1

    • Action Icon: plus (vagy add-circle)

    • Prominence: Display Inline (Ez a kulcs! Így jelenik meg a sor mellett a listában).

Fejlesztői magyarázat: Ez a legegyszerűbb művelet. A rendszer kiolvassa az aktuális értéket, hozzáad egyet, és visszaírja. Mivel Inline-ra állítottuk, drasztikusan javítja a felhasználói élményt (UX).


2. Szint: A "Biztonságos Kivét" (Feltételkezelés)

Cél: Csökkenteni a készletet (-1), DE csak akkor engedjük megnyomni a gombot, ha van miből elvenni! Ne lehessen negatív a raktárkészlet.

Lépések:

  1. Action Name: Gyors_Csokkent

  2. Do this: Data: set the values of some columns...

  3. Képlet (Mennyiseg): [Mennyiseg] - 1

  4. Behavior (Viselkedés) -> Only if this condition is true: Itt írjuk a védelmi logikát:

    Excel
    [Mennyiseg] > 0
    
  5. Prominence: Display Inline.

Fejlesztői magyarázat: Ha a Mennyiseg 0, ez a gomb automatikusan eltűnik a felületről. Nem kell hibaüzenetet írnod ("Nincs készlet!"), egyszerűen nem adsz lehetőséget a hibás rögzítésre. Ez a "Poka-Yoke" (hibaelkerülés) elve a programozásban.


3. Szint: Összetett Művelet (Grouped Action) – A "Profi" megoldás

Cél: Amikor a raktáros kivesz egy árut, két dolognak kell történnie EGY gombnyomásra:

  1. Csökkenjen a darabszám.

  2. Frissüljön az UtolsoMozgas dátuma a mostani időpontra.

Ehhez három Action-t kell létrehoznunk. Kettő "segéd" műveletet, és egy "fő" műveletet, ami összefogja őket.

A. Segéd Action 1 (Dátum frissítés)

  • Név: Seged_DatumUpdate

  • Do this: Set values...

  • Oszlop: UtolsoMozgas

  • Képlet: NOW()

  • Prominence: Do not display (Nem akarjuk, hogy a felhasználó ezt külön nyomkodja).

B. Segéd Action 2 (Darabszám csökkentés)

  • Már megcsináltuk a 2. szintnél (Gyors_Csokkent), használhatjuk azt, vagy csinálhatsz egy másolatot Seged_MennyisegCsokkent néven.

  • Prominence: Do not display.

C. A Fő Action (Grouped)

  • Név: KIVÉT RÖGZÍTÉSE

  • Do this: Grouped: execute a sequence of actions

  • Actions: Add hozzá a listához a fenti kettőt sorrendben:

    1. Seged_DatumUpdate

    2. Seged_MennyisegCsokkent

  • Prominence: Display Overlay (Nagy lebegő gomb a jobb alsó sarokban).

  • Behavior (Feltétel): [Mennyiseg] > 0

Fejlesztői magyarázat: A felhasználó csak a KIVÉT RÖGZÍTÉSE gombot látja. Ha megnyomja, az AppSheet a háttérben szépen sorban végrehajtja a részfeladatokat. Ez biztosítja az adatkonzisztenciát: nem fordulhat elő, hogy csökken a készlet, de nem tudjuk, mikor történt.


Bónusz: Vizuális visszajelzés (Format Rules)

Hogy a műveleteid még profibbak legyenek, adjunk hozzá egy kis vizuális logikát. Ha a készlet a minimum alá esik, a gomb legyen piros.

  1. Menj a UX -> Format Rules menübe.

  2. Create New Rule.

  3. Condition: [Mennyiseg] <= [MinimumSzint]

  4. Format these columns: Válaszd ki a Gyors_Novel Action-t (igen, Action-t is lehet formázni!).

  5. Icon color: Red.

  6. Icon: alert-circle.

Eredmény: A raktáros görgeti a listát. Mindenhol szürke vagy kék a "+" gomb, de ahol fogyóban van a készlet, ott piros és figyelmeztető ikonja van. A szeme azonnal oda ugrik -> Actionable Insight (Cselekvésre ösztönző adat).


Összefoglalva, mit értünk el?

  1. Hatékonyság: Nem kell űrlapokat nyitogatni a +/- módosításhoz.

  2. Adatbiztonság: Nem lehet 0 alá vinni a készletet (a gomb eltűnik).

  3. Automatizálás: Egy gombnyomásra több adat is frissül (dátum + mennyiség).

  4. Ergonómia: Színekkel jelezzük a sürgős teendőt.

Ez az a szint, ahol az AppSheet alkalmazás megszűnik egyszerű táblázatkezelő lenni, és valódi szoftverré válik.



Eddig Actions-ről (Műveletekről) beszéltünk, amiket a felhasználó indít el (rákattint a gombra). Most átlépünk az Automation (Automatizálás) világába, ahol a rendszer dolgozik helyettünk a háttérben.

Az AppSheet-ben ezt Bot-nak hívják. A Bot figyeli az eseményeket, és ha a feltételek teljesülnek, végrehajt egy feladatot (Task).

Lépésről lépésre megcsináljuk a "Kritikus Készlet Értesítőt".


A Koncepció: "Ha... Akkor..."

  1. Event (Esemény): Valaki módosítja a raktárkészletet (pl. megnyomja a "Kivét" gombot, amit az előbb csináltunk).

  2. Condition (Feltétel): Megvizsgáljuk: Valóban a minimumszint alá esett a készlet?

  3. Process (Folyamat): Ha igen, küldjünk egy e-mailt a beszerzésnek.


1. lépés: A Bot létrehozása

  1. A bal oldali menüben kattints az Automation ikonra (kis robotfej vagy villám).

  2. Kattints a Create a new Bot gombra.

  3. Adj neki nevet: Keszlethiany_Bot.

  4. Kattints a Configure Event gombra (Mi indítja el?).

    • Event name: Keszlet_Valtozas

    • Table: Válaszd ki a Raktarkeszlet táblát.

    • Data Change Type: Updates_Only (Csak módosításkor fusson, hiszen új termék felvitelekor ritkán van egyből hiány).

2. lépés: A "Smart" Feltétel (Condition) – Szakértői tipp!

Ez a legfontosabb rész. Sokan itt rontják el. Ha csak azt írod be feltételnek, hogy [Mennyiseg] < [MinimumSzint], akkor minden egyes alkalommal, amikor bárki módosít bármit azon a soron (pl. átírja a leírást), jönni fog az e-mail, ha a készlet alacsony. Mi csak akkor akarunk levelet, ha a készlet MOST lépte át a határt.

Írd be ezt a képletet a Condition mezőbe:

Excel
AND(
  [Mennyiseg] <= [MinimumSzint],                 /* Most már kicsi a készlet */
  [_THISROW_BEFORE].[Mennyiseg] > [_THISROW_BEFORE].[MinimumSzint]  /* De az előbb még jó volt! */
)

Magyarázat: Az AND függvény két feltételt köt össze. A _THISROW_BEFORE egy speciális kifejezés, ami a módosítás előtti állapotot jelenti. Ez a logika biztosítja, hogy termékenként csak egyszer küldjünk riasztást: abban a pillanatban, amikor a "zöld zónából" átlép a "piros zónába".

3. lépés: Az E-mail beállítása (The Task)

  1. Az Event alatt kattints az Add a step gombra.

  2. Válaszd: Create a new task.

  3. Task name: Email_Beszerzesnek.

  4. Action: Send an email.

  5. Töltsük ki a mezőket:

  • Table name: Raktarkeszlet

  • To: beszerzes@ceged.hu (Teszteléskor a saját címed).

  • Subject (Tárgy):

    Plaintext
    Sürgős: Készlethiány - <<[TermekNev]>>
    

    (A << >> jelek közé írt oszlopneveket a rendszer kicseréli a konkrét adatra!)

  • Email Body (Törzs): Itt használhatsz HTML-t vagy sima szöveget is. Írjuk meg dinamikusan:

    Plaintext
    Kedves Beszerzés!
    
    Azonnali utánpótlás szükséges az alábbi termékből:
    Termék neve: <<[TermekNev]>>
    Cikkszám: <<[ID]>>
    
    Jelenlegi készlet: <<[Mennyiseg]>> db
    Minimum szint: <<[MinimumSzint]>> db
    
    Kérlek, intézkedjetek a rendelésről.
    
    Üdvözlettel,
    Raktár App
    

4. lépés: Mentés és Tesztelés

  1. Nyomd meg a SAVE gombot a jobb felső sarokban.

  2. Nyisd meg az alkalmazást (vagy az előnézetet jobb oldalt).

  3. Keress egy terméket, aminek a készlete éppen a minimum felett van (pl. Min: 10, Készlet: 11).

  4. Használd a korábban készített - gombot (Action), vagy szerkeszd a sort, és állítsd a készletet 10-re vagy 9-re.

  5. Várj pár másodpercet. A szinkronizálás után meg kell érkeznie az e-mailnek.


Fontos AppSheet korlátok, amikről tudnod kell

Szakértőként fel kell hívnom a figyelmedet néhány dologra:

  1. Ingyenes verzió korlátja (Prototype Mode): Amíg az alkalmazásod nincs "Deploy" (Élesítés) állapotban, vagyis ingyenes módban használod, az AppSheet kizárólag az alkalmazás tulajdonosának (neked) küldi el az e-mailt, akkor is, ha a "To" mezőbe a beszerzési osztály címét írtad! Ez biztonsági funkció, hogy tesztelés közben ne spammelj másokat. Megoldás: Teszteléshez ez tökéletes. Élesítés után működni fog a címzett is.

  2. Szinkronizálás szükségessége: Az e-mailt a szerver küldi, nem a telefonod. Ez azt jelenti, hogy ha a raktáros offline módban dolgozik a pincében, és megnyomja a gombot, az e-mail csak akkor megy ki, amikor a telefonja újra internetet kap és szinkronizál.

  3. Napi kvóta: A csomagodtól függően van napi limit az e-mailekre (ingyenesben és Starter csomagban is viszonylag alacsony, de egy KKV-nak általában elég).

Összefoglalás

Most már van egy rendszered, ahol:

  1. Action: A felhasználó könnyen rögzíti a fogyást.

  2. Logic: A rendszer figyeli az adatokat.

  3. Automation: A rendszer automatikusan kommunikál a külvilággal (e-mail), ha baj van.

Ez a három elem (Adat -> Action -> Automation) az AppSheet fejlesztés "szentháromsága".





Megjegyzések