Glide workflows (automations) - triggers, nodes, and automation patterns. Covers both client-side App Interactions and server-side workflows.
Glide workflows automate actions in response to triggers. There are two categories:
| Category | Runs On | Trigger Source | Example |
|---|---|---|---|
| App Interactions | User's device | User action in app | Button click → navigate |
| Server-Side Workflows | Glide servers | External events or schedule | Webhook → add row |
Trigger: User action (button click, screen open, form submit) Location: Created via Layout Editor → Component → Actions
Key characteristics:
Common App Interaction actions:
Trigger: Time-based schedule Location: Workflows tab
Schedule options:
| Frequency | Configuration |
|---|---|
| Every 5/15/30 minutes | Automatic |
| Every hour | Automatic |
| Every day | Select days + time |
| Every week | Select day + time |
| Every month | Select date (1-31) + time |
Use cases:
Trigger: HTTP POST request to unique URL Location: Workflows tab
Receives:
Use cases:
Trigger: App Interaction using "Trigger Workflow" action Location: Workflows tab
Features:
Use cases:
Trigger: Email received at Glide-provided address Location: Workflows tab
Available variables:
Use cases:
Trigger: Slack event Location: Workflows tab Prerequisite: Slack integration enabled
Available variables:
Use cases:
Iterate over table rows in server-side workflows.
Loop: Over "Orders" table
Filter: status = "Pending"
For each row:
→ Update Row (set processed = true)
→ Send Email (order confirmation)
Best practices:
Create branching logic paths.
Condition:
Path 1: IF amount > 1000 → Require approval
Path 2: IF amount > 100 → Auto-approve, notify manager
Path 3: ELSE → Auto-approve
Key rule: Evaluated left-to-right, first match wins.
Put most specific conditions first, general conditions last.
| Node | Description |
|---|---|
| Add Row | Create new row in table |
| Update Row | Modify existing row |
| Delete Row | Remove row |
| Query JSON | Parse JSON with JSONata |
| Query Table | Find rows matching criteria |
| Node | Description |
|---|---|
| Send Email | Send email via Glide |
| Send SMS | Send text message |
| Push Notification | Send to app users |
| Send Slack Message | Post to Slack channel |
| Node | Description |
|---|---|
| HTTP Request | Call external API |
| Trigger Workflow | Call another workflow |
| Google Sheets | Interact with Sheets |
| Node | Description |
|---|---|
| Condition | Branch based on criteria |
| Loop | Iterate over rows |
| Wait | Pause execution |
| Set Variable | Create/modify variable |
| Node | Description |
|---|---|
| Generate Text | AI text generation |
| Classify Text | AI categorization |
| Extract Data | AI data extraction |
For parsing JSON in Query JSON nodes:
name // Simple field
customer.email // Nested field
items[0] // First array item
items[-1] // Last array item
items[*].name // All names from array
$count(items) // Array length
$sum(items.price) // Sum values
$average(scores) // Average
$string(number) // To string
$number(string) // To number
$now() // Current time
$lowercase(text) // Lowercase
$trim(text) // Remove whitespace
items[price > 100] // Items over $100
items[status = "active"] // Active only
orders[total > 0].id // IDs of non-zero orders
Trigger: Webhook (receives order data)
↓
Query JSON: Extract orderId, customerEmail, total
↓
Add Row: Create order in Orders table
↓
Send Email: Order confirmation to customer
Trigger: Schedule (daily at 9am)
↓
Query Table: Get yesterday's orders
↓
Loop: Calculate totals
↓
Generate Text (AI): Create summary
↓
Send Email: Report to managers
Trigger: Manual (from app button)
↓
Condition:
Path 1: amount > 10000
→ Add Row: Create approval request
→ Send Email: Notify approvers
Path 2: else
→ Update Row: Set approved = true
→ Send Email: Confirmation
Trigger: Schedule (every hour)
↓
HTTP Request: GET external API
↓
Query JSON: Parse response
↓
Loop: Over items in response
↓
Condition:
→ IF exists in Glide: Update Row
→ ELSE: Add Row
Trigger: On Email
↓
Add Row: Create ticket
- Subject → Title
- Body → Description
- From → Requester
- Status = "New"
↓
Send Email: Auto-reply to sender
↓
Send Slack: Notify support channel
| Issue | Cause | Solution |
|---|---|---|
| Workflow not triggering | Not enabled | Enable in properties |
| Webhook returns error | Invalid payload | Check JSONata queries |
| Loop timeout | Too many rows | Add filters |
| Email not sending | Invalid address | Validate email format |
| Slack failing | Bot not in channel | Invite bot to channel |
Check Glide documentation for current limits on your plan.
