← Back to Tutorials
Beginner⏱️ 20 min

Logic Apps Triggers — HTTP, Recurrence, and Service Bus

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


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

  1. In your Logic App → Workflows+ Add
  2. Name: http-trigger-demo, State: Stateful
  3. 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"]
}

Screenshot: HTTP trigger with JSON schema

Key settings:

SettingDescription
MethodGET, POST, or Any
Relative pathOptional URL path segment
JSON SchemaValidates request body and enables dynamic content

Trigger 2: Recurrence (Polling/Timer)

Runs your workflow on a schedule — like a cron job.

Create the workflow

  1. Workflows+ Add → Name: scheduled-task, State: Stateful
  2. Add trigger → Search Schedule → Select Recurrence

Configure the schedule

SettingValueDescription
Interval5How often
FrequencyMinuteUnit of time
Time ZoneIndia Standard TimeYour timezone
Start Time2026-06-01T09:00:00When to begin

Screenshot: Recurrence trigger configuration

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

Screenshot: Advanced recurrence schedule


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

  1. Workflows+ Add → Name: sb-processor, State: Stateful
  2. Add trigger → Search Service Bus → Select When messages are available in a queue

Screenshot: Service Bus trigger selection

  1. Create a new connection:
FieldValue
Connection namesb-connection
AuthenticationManaged Identity (recommended)
NamespaceYour Service Bus namespace

Screenshot: Service Bus connection setup

  1. Configure the trigger:
SettingValue
Queue nameorders
Max message count10
Is sessions enabledNo

Screenshot: Service Bus trigger configured

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

FeatureHTTPRecurrenceService Bus
TypePushTimerPolling
LatencyInstantScheduled~seconds
Use caseAPI endpointBatch jobsMessage processing
ConcurrencyPer requestSingle runConfigurable
CostPer executionPer executionPer execution + SB cost

Best Practices

  1. Always add a JSON schema to HTTP triggers — enables IntelliSense in downstream actions
  2. Use Managed Identity for Service Bus connections — no connection strings to manage
  3. Set concurrency limits on triggers to prevent overwhelming downstream systems
  4. Enable split-on for batch triggers to process each item as a separate run

Setting concurrency on a trigger:

Screenshot: Trigger concurrency settings

In the trigger settings → Concurrency Control → Enable → Set degree of parallelism (e.g., 10)


What You Learned

ConceptDescription
Push vs PollingPush = instant, Polling = checks periodically
HTTP triggerCreates an API endpoint for your workflow
RecurrenceTimer-based scheduling with timezone support
Service Bus triggerMessage-driven processing with peek-lock
Concurrency controlLimit parallel workflow executions

Next Tutorial

Working with Connectors — SQL, Blob Storage, Outlook