Marketplace

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:

CategoryRuns OnTrigger SourceExample
App InteractionsUser's deviceUser action in appButton click → navigate
Server-Side WorkflowsGlide serversExternal events or scheduleWebhook → 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:

FrequencyConfiguration
Every 5/15/30 minutesAutomatic
Every hourAutomatic
Every daySelect days + time
Every weekSelect day + time
Every monthSelect 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

NodeDescription
Add RowCreate new row in table
Update RowModify existing row
Delete RowRemove row
Query JSONParse JSON with JSONata
Query TableFind rows matching criteria

Communication Nodes

NodeDescription
Send EmailSend email via Glide
Send SMSSend text message
Push NotificationSend to app users
Send Slack MessagePost to Slack channel

Integration Nodes

NodeDescription
HTTP RequestCall external API
Trigger WorkflowCall another workflow
Google SheetsInteract with Sheets

Logic Nodes

NodeDescription
ConditionBranch based on criteria
LoopIterate over rows
WaitPause execution
Set VariableCreate/modify variable

AI Nodes

NodeDescription
Generate TextAI text generation
Classify TextAI categorization
Extract DataAI 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

IssueCauseSolution
Workflow not triggeringNot enabledEnable in properties
Webhook returns errorInvalid payloadCheck JSONata queries
Loop timeoutToo many rowsAdd filters
Email not sendingInvalid addressValidate email format
Slack failingBot not in channelInvite bot to channel

Debugging Strategies

  1. Check run history - View past executions and errors
  2. Add logging nodes - Insert "Add Row" to log table
  3. Test incrementally - Build and test one node at a time
  4. Validate data - Use Query JSON to inspect payloads

Best Practices

General

  1. Name workflows clearly - "Daily Sales Report" not "Workflow 1"
  2. Document complex logic - Add notes explaining branches
  3. Test before deploying - Use test data first
  4. Monitor executions - Check run history regularly

Performance

  1. Filter loops aggressively - Never iterate entire tables
  2. Batch external calls - Minimize API requests
  3. Use conditions early - Short-circuit unnecessary processing
  4. Consider timing - Schedule heavy jobs during low-usage hours

Security

  1. Don't expose secrets - Use environment variables
  2. Validate webhook data - Check for expected structure
  3. Limit webhook access - Consider authentication headers
  4. Be careful with loops - Avoid infinite loops

Integration with App

From App to Workflow

  1. Create Manual workflow with input variables
  2. Add Button to screen
  3. Add "Trigger Workflow" action
  4. Map screen data to input variables

From Workflow to App

  1. Workflow updates database (Add/Update Row)
  2. App displays updated data
  3. 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.