AppSheet-ben a Bots (Automatizálások) szerepe
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 |
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# | Ü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 |
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 |
- Adatmodell + táblák, relációk
- Alap nézetek + szeletek (slices)
- Actions → felhasználói interakciók, gombok, gyors műveletek
- Szépítés, UX, dashboardok, navigáció
- Bots → háttér automatizálások, értesítések, időszakos takarítás, integrációk
- Tesztelés audit history + monitor segítségével
- Finomhangolás (security filters, performance)
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:
Menj az Actions fülre -> New Action.
Action Name:
Gyors_NovelFor a record of this table:
RaktarkeszletDo this: Data: set the values of some columns in this row
Set these columns:
Válaszd ki a
Mennyisegoszlopot.Képlet:
[Mennyiseg] + 1
Appearance (Megjelenés):
Display Name: +1
Action Icon:
plus(vagyadd-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:
Action Name:
Gyors_CsokkentDo this: Data: set the values of some columns...
Képlet (Mennyiseg):
[Mennyiseg] - 1Behavior (Viselkedés) -> Only if this condition is true: Itt írjuk a védelmi logikát:
Excel[Mennyiseg] > 0Prominence: Display Inline.
Fejlesztői magyarázat: Ha a
Mennyiseg0, 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:
Csökkenjen a darabszám.
Frissüljön az
UtolsoMozgasdá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_DatumUpdateDo this: Set values...
Oszlop:
UtolsoMozgasKé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ásolatotSeged_MennyisegCsokkentnéven.Prominence: Do not display.
C. A Fő Action (Grouped)
Név:
KIVÉT RÖGZÍTÉSEDo this: Grouped: execute a sequence of actions
Actions: Add hozzá a listához a fenti kettőt sorrendben:
Seged_DatumUpdateSeged_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ÉSEgombot 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.
Menj a UX -> Format Rules menübe.
Create New Rule.
Condition:
[Mennyiseg] <= [MinimumSzint]Format these columns: Válaszd ki a
Gyors_NovelAction-t (igen, Action-t is lehet formázni!).Icon color: Red.
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?
Hatékonyság: Nem kell űrlapokat nyitogatni a +/- módosításhoz.
Adatbiztonság: Nem lehet 0 alá vinni a készletet (a gomb eltűnik).
Automatizálás: Egy gombnyomásra több adat is frissül (dátum + mennyiség).
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..."
Event (Esemény): Valaki módosítja a raktárkészletet (pl. megnyomja a "Kivét" gombot, amit az előbb csináltunk).
Condition (Feltétel): Megvizsgáljuk: Valóban a minimumszint alá esett a készlet?
Process (Folyamat): Ha igen, küldjünk egy e-mailt a beszerzésnek.
1. lépés: A Bot létrehozása
A bal oldali menüben kattints az Automation ikonra (kis robotfej vagy villám).
Kattints a Create a new Bot gombra.
Adj neki nevet:
Keszlethiany_Bot.Kattints a Configure Event gombra (Mi indítja el?).
Event name:
Keszlet_ValtozasTable: Válaszd ki a
Raktarkeszlettá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:
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
ANDfüggvény két feltételt köt össze. A_THISROW_BEFOREegy 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)
Az Event alatt kattints az Add a step gombra.
Válaszd: Create a new task.
Task name:
Email_Beszerzesnek.Action: Send an email.
Töltsük ki a mezőket:
Table name:
RaktarkeszletTo:
beszerzes@ceged.hu(Teszteléskor a saját címed).Subject (Tárgy):
PlaintextSü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:
PlaintextKedves 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
Nyomd meg a SAVE gombot a jobb felső sarokban.
Nyisd meg az alkalmazást (vagy az előnézetet jobb oldalt).
Keress egy terméket, aminek a készlete éppen a minimum felett van (pl. Min: 10, Készlet: 11).
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.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:
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.
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.
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:
Action: A felhasználó könnyen rögzíti a fogyást.
Logic: A rendszer figyeli az adatokat.
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
Megjegyzés küldése