workflows
Glide workflows (automations) - triggers, nodes, and automation patterns. Covers both client-side App Interactions and server-side workflows.
$ 설치
git clone https://github.com/glideapps/glide-code /tmp/glide-code && cp -r /tmp/glide-code/glide/skills/workflows ~/.claude/skills/glide-code// tip: Run this command in your terminal to install the skill
name: workflows description: | Glide workflows (automations) - triggers, nodes, and automation patterns. Covers both client-side App Interactions and server-side workflows.
Glide Workflows Skill
Overview
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 |
Workflow Types
1. App Interactions (Client-Side)
Trigger: User action (button click, screen open, form submit) Location: Created via Layout Editor → Component → Actions
Key characteristics:
- Execute immediately on user action
- Run on the user's device
- Limited to actions that can happen client-side
- Can trigger server-side workflows via "Trigger Workflow" action
Common App Interaction actions:
- Navigate to screen
- Show/hide component
- Set column value
- Open URL
- Send email (via device)
- Trigger Workflow (bridges to server-side)
2. Schedule Workflows (Server-Side)
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:
- Daily report generation
- Periodic data sync
- Scheduled notifications
- Cleanup/maintenance tasks
3. Webhook Workflows (Server-Side)
Trigger: HTTP POST request to unique URL Location: Workflows tab
Receives:
- Request body - JSON payload
- Request headers - HTTP headers
- Query parameters - URL query string
Use cases:
- External system integration (Shopify, Stripe, Zapier)
- API endpoint for third parties
- IoT device data ingestion
4. Manual Workflows (Server-Side)
Trigger: App Interaction using "Trigger Workflow" action Location: Workflows tab
Features:
- Define input variables
- Variables passed from app screen
- Bridge between client action and server processing
Use cases:
- Complex operations that need server resources
- Operations requiring loops/conditions
- Background processing after user action
5. Email Workflows (Server-Side)
Trigger: Email received at Glide-provided address Location: Workflows tab
Available variables:
- From, To, Subject, Body
- HTML Body, Plain Text Body
- Attachments (as URLs)
- Date received
Use cases:
- Email-to-database logging
- Support ticket creation
- Lead capture from form submissions
- Email parsing and automation
6. Slack Workflows (Server-Side)
Trigger: Slack event Location: Workflows tab Prerequisite: Slack integration enabled
Available variables:
- Channel ID/Name
- User ID/Name
- Message text
- Thread info
- Event type
Use cases:
- Message logging
- Slack-to-Glide data sync
- Bot responses
- Team notifications
Server-Side Exclusive Features
Loops
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:
- Always filter loops (never process entire table)
- Be mindful of execution time
- Consider rate limits on external APIs
Conditions (Branches)
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.
Common Workflow Nodes
Data Nodes
| 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 |
Communication Nodes
| 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 |
Integration Nodes
| Node | Description |
|---|---|
| HTTP Request | Call external API |
| Trigger Workflow | Call another workflow |
| Google Sheets | Interact with Sheets |
Logic Nodes
| Node | Description |
|---|---|
| Condition | Branch based on criteria |
| Loop | Iterate over rows |
| Wait | Pause execution |
| Set Variable | Create/modify variable |
AI Nodes
| Node | Description |
|---|---|
| Generate Text | AI text generation |
| Classify Text | AI categorization |
| Extract Data | AI data extraction |
JSONata Reference
For parsing JSON in Query JSON nodes:
Basic Syntax
name // Simple field
customer.email // Nested field
items[0] // First array item
items[-1] // Last array item
items[*].name // All names from array
Common Functions
$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
Filtering
items[price > 100] // Items over $100
items[status = "active"] // Active only
orders[total > 0].id // IDs of non-zero orders
Workflow Patterns
Pattern: Webhook → Database
Trigger: Webhook (receives order data)
↓
Query JSON: Extract orderId, customerEmail, total
↓
Add Row: Create order in Orders table
↓
Send Email: Order confirmation to customer
Pattern: Scheduled Report
Trigger: Schedule (daily at 9am)
↓
Query Table: Get yesterday's orders
↓
Loop: Calculate totals
↓
Generate Text (AI): Create summary
↓
Send Email: Report to managers
Pattern: Approval Flow
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
Pattern: External API Sync
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
Pattern: Email to Ticket
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
Error Handling
Common Issues
| 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 |
Debugging Strategies
- Check run history - View past executions and errors
- Add logging nodes - Insert "Add Row" to log table
- Test incrementally - Build and test one node at a time
- Validate data - Use Query JSON to inspect payloads
Best Practices
General
- Name workflows clearly - "Daily Sales Report" not "Workflow 1"
- Document complex logic - Add notes explaining branches
- Test before deploying - Use test data first
- Monitor executions - Check run history regularly
Performance
- Filter loops aggressively - Never iterate entire tables
- Batch external calls - Minimize API requests
- Use conditions early - Short-circuit unnecessary processing
- Consider timing - Schedule heavy jobs during low-usage hours
Security
- Don't expose secrets - Use environment variables
- Validate webhook data - Check for expected structure
- Limit webhook access - Consider authentication headers
- Be careful with loops - Avoid infinite loops
Integration with App
From App to Workflow
- Create Manual workflow with input variables
- Add Button to screen
- Add "Trigger Workflow" action
- Map screen data to input variables
From Workflow to App
- Workflow updates database (Add/Update Row)
- App displays updated data
- Use Push Notification for immediate alerts
Workflow Limits
- Execution time limits (varies by plan)
- API call limits for external requests
- Row processing limits in loops
- Email/SMS sending limits
Check Glide documentation for current limits on your plan.
Repository
