Ugrás a fő tartalomra

Power Automate alapok : flow elemek, vezérlők

 Power Automate alapok : flow elemek, vezérlők




🔁 1. Apply to each – ciklus, amely végigmegy egy tömbön/listán


Az Apply to each egy ciklusvezérlő, amely akkor jön jól, ha egy lista vagy tömb (pl. e-mailek, fájlok, JSON elemek) minden elemén végig akarsz menni.

Mikor használod?

  • JSON tömb bejárása (pl. egy lekérdezés válasza).

  • SharePoint lista vagy Excel sorainak feldolgozása.

  • Gmail: Több beérkező levél vizsgálata.

Példa:

Gmail inboxból lekéred az új leveleket, és minden levélnél megnézed, hogy ki a feladó.

---text

Trigger: Gmail V2 – "When a new email arrives" ↓ Apply to each (value: a válaszban található email lista) ↓ Action: Compose (Email sender: `item()?['from']`)

🔀 2. Condition – feltételes elágazás (if-else logika)


A Condition egy „if” szerű vezérlő: vizsgál egy logikai feltételt, és annak alapján ágazik két irányba: "Yes" vagy "No".

Mikor használod?

  • Csak bizonyos feladóktól jövő emaileket dolgozz fel.

  • Dönts arról, hogy küldj-e választ vagy sem.

  • Ellenőrizd, hogy egy mező tartalmaz-e értéket.

Példa:

Csak akkor küldj választ, ha az email tárgya tartalmazza a "Megrendelés" szót.

---text

Action: Condition Expression: `contains(triggerOutputs()?['body/subject'], 'Megrendelés')` ↓ Yes ág → Action: Gmail V2 – "Send email" No ág → (semmi vagy log)

📧 3. Gmail V2 – Google email küldés/fogadás


A Gmail V2 egy Power Automate connector, ami a Google fiókodhoz kapcsolódik. Lehetővé teszi emailek olvasását, írását, törlését.

Leggyakoribb használatok:

  • Új email érkezése trigger.

  • Email küldése automatizált válaszként.

  • Email tartalmának kiolvasása: tárgy, feladó, dátum, csatolmány stb.


🎯 Kombinált példa – automatizált válasz minden „Megrendelés” tárgyú levélre:

Lépések:

  1. Trigger: Gmail V2 – „When a new email arrives”

  2. Condition: contains(triggerBody()?['subject'], 'Megrendelés')

    • Yes ág:

      • Send email (Gmail V2):

        • To: triggerBody()?['from']

        • Subject: Válasz a megrendelésére

        • Body: Köszönjük a megrendelését! Feldolgozzuk és hamarosan jelentkezünk.

    • No ág: (pl. log vagy hagyd üresen)


🧠 Kapcsolatuk

LépésMikor használodKapcsolat másokkal
Apply to eachTöbb elem feldolgozásBelső lépésként gyakran Condition vagy Send Email
ConditionFeltételes logikaGyakran előzi meg a Gmail vagy más műveleteket
Gmail V2Email kezelésTriggerként és műveletként is, sokszor Condition-nel kombinálva



🔍 Filter array – tömbök szűrése feltétel alapján


A Filter array egy akció, amellyel egy tömb elemeit (pl. emailek, JSON objektumok) szűrheted egy megadott feltétel szerint. Ez még az Apply to each előtt képes előszűrni, hogy ne kelljen minden elemre külön lépést végrehajtani.

Mikor használod?

  • Csak bizonyos feltételeknek megfelelő elemek kiválasztása (pl. csak "Megrendelés" tárgyú levelek).

  • Egy listából csak adott státuszú rekordok kiválasztása.

  • Elkerülni, hogy minden elemhez fusson ciklus (gyorsítás).


Demó Flow – „Automatikus válasz megrendeléses Gmail levelekre”

Cél:

  • Figyeld a Gmail fiókot.

  • Csak azokat az emaileket dolgozd fel, ahol a tárgy tartalmazza: Megrendelés.

  • Válaszolj automatikusan a feladónak.


📊 1. Trigger

---text

Trigger: Gmail V2 – When a new email arrives

🧠 2. Feltétel – subject tartalmazza a „Megrendelés” szót?

---text

Condition: Expression: contains(triggerBody()?['subject'], 'Megrendelés') Yes ág: → Gmail V2 – Send email - To: triggerBody()?['from'] - Subject: Köszönjük a megrendelést - Body: Kedves ügyfelünk! Megrendelését feldolgoztuk. No ág: → Log vagy semmi

🧪 Alternatív megközelítés – Több email feldolgozása egyszerre (Apply to each + Filter array)

Tegyük fel, hogy több új levelet akarsz feldolgozni pl. egy időzített flow-ban.


📦 Trigger: Recurrence (pl. óránként)

A Gmail V2 „List messages” lekérdezéssel (pl. utolsó 1 óra emailjeit) betöltöd az emaileket egy tömbbe.

--text

1. Trigger: Recurrence 2. Action: Gmail V2 – List messages - Search query: newer_than:1h

🧼 Szűrés: Filter array

---text

3. Action: Filter array From: body('List_messages')?['messages'] Condition: contains(item()?['subject'], 'Megrendelés')

Ez egy új tömböt ad vissza: csak azok az emailek, ahol a subject tartalmazza a „Megrendelés” szót.


🔁 Feldolgozás: Apply to each

---text

4. Apply to each (value: output of Filter array) Action: Gmail V2 – Send email To: item()?['from'] Subject: Megrendelés visszaigazolás Body: Köszönjük, feldolgoztuk!

🧠 Összefoglalás

ElemSzerep
RecurrenceTrigger időzítéshez
Gmail V2 – List messagesTömb létrehozása emailekből
Filter arrayCsak „Megrendelés”-es emailek kiválasztása
Apply to eachVégigmegy a szűrt leveleken
Condition (opcionális)Egyedi vizsgálatok levélenként
Gmail V2 – Send emailVálasz kiküldése

🎁 Bónusz tipp: A Filter array után egy length() függvénnyel ellenőrizheted, hogy van-e egyáltalán találat:

---text

Condition: Expression: length(body('Filter_array')) > 0


:


🔄 Flow összefoglaló – „Automatikus válasz megrendeléses Gmail levelekre”

  1. Óránként lefut (Recurrence)

  2. Lekéri a Gmail leveleket az elmúlt 1 órából

  3. Kiszűri azokat, amik Megrendelés szót tartalmaznak a tárgyban

  4. Mindegyikre válaszol egy automatikus emaillel




📥 JSON Flow (Power Automate export formátum)

Ezt a JSON-t .zip fájlba csomagolva tudod importálni Power Automate-be. Mivel a Power Automate nem közvetlenül JSON-t használ importhoz, hanem .zip formájú package-t, itt a JSON struktúrát mutatom illusztrációként.

---json

{ "definition": { "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#", "actions": { "List_messages": { "type": "ApiConnection", "inputs": { "host": { "connection": { "name": "@parameters('$connections')['gmail']['connectionId']" } }, "method": "get", "path": "/v2/messages", "queries": { "q": "newer_than:1h" } }, "runAfter": {}, "metadata": { "operationMetadataId": "listMessages" } }, "Filter_array": { "type": "Query", "inputs": { "from": "@body('List_messages')?['messages']", "where": "@contains(item()?['subject'], 'Megrendelés')" }, "runAfter": { "List_messages": ["Succeeded"] } }, "Apply_to_each": { "type": "Foreach", "foreach": "@body('Filter_array')", "actions": { "Send_email": { "type": "ApiConnection", "inputs": { "host": { "connection": { "name": "@parameters('$connections')['gmail']['connectionId']" } }, "method": "post", "path": "/v2/send", "body": { "to": "@item()?['from']", "subject": "Köszönjük a megrendelést!", "body": "Kedves Ügyfelünk! Megrendelését feldolgoztuk, hamarosan jelentkezünk." } }, "runAfter": {} } }, "runAfter": { "Filter_array": ["Succeeded"] } } }, "triggers": { "Recurrence": { "type": "Recurrence", "recurrence": { "frequency": "Hour", "interval": 1 } } }, "contentVersion": "1.0.0.0" } }

🧭 Lépésenkénti útmutató Power Automate GUI-ban

1. Új flow létrehozása

  • Nyisd meg a Power Automate felületet

  • Kattints: CreateScheduled cloud flow

  • Név: Megrendelés Válaszoló

  • Indítás gyakorisága: 1 óránként

  • Kattints: Create


2. Gmail üzenetek lekérdezése

  • Kattints: + New step

  • Keresd meg: Gmail V2 – List messages

  • Query mezőbe írd be: newer_than:1h


3. Filter array használata

  • Kattints: + New step

  • Keresd: Filter array

  • From: @body('List_messages')?['messages']

  • Condition:

    • Válaszd: item()?['subject']

    • Operator: contains

    • Value: Megrendelés


4. Ciklus az üzenetekre

  • Kattints: + New step

  • Válaszd: Apply to each

  • Items: BodyFilter array eredménye


5. Email küldése (válasz)

  • Cikluson belül kattints: Add an action

  • Válaszd: Gmail V2 – Send email

    • To: @item()?['from']

    • Subject: Köszönjük a megrendelést!

    • Body: Kedves Ügyfelünk! Megrendelését feldolgoztuk, hamarosan jelentkezünk.




Megjegyzések