Logic Apps Triggers — HTTP, Recurrence, and Service Bus
What You'll Learn
How triggers work in Logic Apps, the difference between push and polling triggers, and how to configure the three most common trigger types.
Prerequisites
- Completed: Create Your First Logic App
Understanding Triggers
Every Logic App workflow starts with exactly one trigger. Triggers determine when and how your workflow runs.
┌─────────────────────────────────────────────────────────┐
│ TRIGGER TYPES │
├─────────────────────────────────────────────────────────┤
│ │
│ PUSH Triggers │ POLLING Triggers │
│ (Event fires workflow) │ (Workflow checks for events) │
│ │ │
│ • HTTP Request │ • Recurrence (timer) │
│ • Event Grid │ • Service Bus (peek-lock) │
│ • Service Bus (push) │ • SQL (check for new rows) │
│ • Webhook │ • File System (new files) │
│ │ │
└─────────────────────────────────────────────────────────┘
Trigger 1: HTTP Request (Push)
The HTTP trigger fires immediately when a request arrives — zero delay.
Create the workflow
- In your Logic App → Workflows → + Add
- Name:
http-trigger-demo, State: Stateful - Open Designer → Add trigger → When a HTTP request is received
Configure with JSON Schema
To validate incoming requests, add a JSON schema:
{
"type": "object",
"properties": {
"orderId": { "type": "string" },
"amount": { "type": "number" },
"customer": { "type": "string" }
},
"required": ["orderId", "amount"]
}

Key settings:
| Setting | Description |
|---|---|
| Method | GET, POST, or Any |
| Relative path | Optional URL path segment |
| JSON Schema | Validates request body and enables dynamic content |
Trigger 2: Recurrence (Polling/Timer)
Runs your workflow on a schedule — like a cron job.
Create the workflow
- Workflows → + Add → Name:
scheduled-task, State: Stateful - Add trigger → Search Schedule → Select Recurrence
Configure the schedule
| Setting | Value | Description |
|---|---|---|
| Interval | 5 | How often |
| Frequency | Minute | Unit of time |
| Time Zone | India Standard Time | Your timezone |
| Start Time | 2026-06-01T09:00:00 | When to begin |

Advanced scheduling
For complex schedules (e.g., weekdays at 9 AM and 5 PM):
Interval: 1
Frequency: Week
On these days: Monday, Tuesday, Wednesday, Thursday, Friday
At these hours: 9, 17
At these minutes: 0

Trigger 3: Service Bus Queue (Polling)
Fires when a message arrives in a Service Bus queue.
Prerequisites
- Azure Service Bus namespace (Standard tier)
- A queue named
orders
Create the connection
- Workflows → + Add → Name:
sb-processor, State: Stateful - Add trigger → Search Service Bus → Select When messages are available in a queue

- Create a new connection:
| Field | Value |
|---|---|
| Connection name | sb-connection |
| Authentication | Managed Identity (recommended) |
| Namespace | Your Service Bus namespace |

- Configure the trigger:
| Setting | Value |
|---|---|
| Queue name | orders |
| Max message count | 10 |
| Is sessions enabled | No |

How polling works
The Service Bus trigger uses long polling — it checks the queue every few seconds. When messages arrive, the workflow fires. The trigger uses peek-lock — messages are locked during processing and completed on success.
Queue has messages? ──▶ YES ──▶ Lock message ──▶ Run workflow ──▶ Complete message
│
▼
NO ──▶ Wait (polling interval) ──▶ Check again
Trigger Comparison
| Feature | HTTP | Recurrence | Service Bus |
|---|---|---|---|
| Type | Push | Timer | Polling |
| Latency | Instant | Scheduled | ~seconds |
| Use case | API endpoint | Batch jobs | Message processing |
| Concurrency | Per request | Single run | Configurable |
| Cost | Per execution | Per execution | Per execution + SB cost |
Best Practices
- Always add a JSON schema to HTTP triggers — enables IntelliSense in downstream actions
- Use Managed Identity for Service Bus connections — no connection strings to manage
- Set concurrency limits on triggers to prevent overwhelming downstream systems
- Enable split-on for batch triggers to process each item as a separate run
Setting concurrency on a trigger:

In the trigger settings → Concurrency Control → Enable → Set degree of parallelism (e.g., 10)
What You Learned
| Concept | Description |
|---|---|
| Push vs Polling | Push = instant, Polling = checks periodically |
| HTTP trigger | Creates an API endpoint for your workflow |
| Recurrence | Timer-based scheduling with timezone support |
| Service Bus trigger | Message-driven processing with peek-lock |
| Concurrency control | Limit parallel workflow executions |