Skip to main content

Azure Logic Apps ⇄ Pulse

Intermediate ⏱ 10 min azure · workflow.json · native http · 🧪 workflow validated live

Logic Apps owns the workflow and speaks HTTP natively (the Http action) — like Cloud Workflows, Pulse needs no glue function. Repo example: examples/azure-logic-apps-pulse-bridge/.

Send_to_Pulse (Http POST → /x/order-scoring/in) → Wait 2s → Read_verdict (Http GET) → If contains(body, orderId) → Escalate | Auto_approve

Run it locally — the real workflow.json

pulse server start --dev
mkdir app && cp pulse.yaml app/ && (cd app && pulse deploy .)
pip install requests
PULSE_URL=http://localhost:9090 python run_local.py

run_local.py is a tiny Logic Apps interpreter executing the same workflow.json you would deploy to Azure — the Http actions, Wait, the If's contains, runAfter ordering, and the @{parameters()} / @triggerBody() / @body() expressions. Validated output:

amount= 2500 -> decision=escalate
amount= 300 -> decision=auto-approve

Deploying to real Azure

Create a Logic App (Consumption), paste workflow.json in the code view (or ARM/Bicep), set the pulseUrl and pulseToken parameters, and POST an order to the Request trigger's URL. In production: JWT in Key Vault, VNet integration if Pulse is private. The 🧪 status: workflow proven against live Pulse; the Azure-hosted run needs your subscription.

Next