Recipes

Step-by-step workflow recipes you can build in the TogoFlow editor.

Webhook to Slack notification

What it does: Receive a webhook payload and post a formatted message to a Slack channel.

Nodes: Start (Webhook) → Transform (Edit Fields) → Action (Slack → Send Message)

Configuration

Start node:

  • Trigger: Webhook, Method: POST

Transform node (Edit Fields):

FieldValue
messageNew event: {{inputs.eventType}} from {{inputs.source}}
channel#alerts

Action node (Slack → Send Message):

  • Connect your Slack workspace via OAuth
  • Channel: {{lastOutput.channel}}
  • Message: {{lastOutput.message}}

Daily AI content digest

What it does: Every morning, fetch news from an API, summarize with AI, and email the digest.

Nodes: Start (Schedule) → HTTP Request → AI Agent → Action (Gmail → Send Email)

Configuration

Start node:

  • Trigger: Schedule
  • Cron: 0 8 * * * (8 AM daily)
  • Timezone: your local timezone

HTTP Request:

  • Method: GET
  • URL: your news/data API endpoint

AI Agent:

  • Model: gpt-4o-mini
  • Prompt: Summarize these headlines in 5 bullet points for a morning digest:\n\n{{lastOutput}}

Action (Gmail → Send Email):

  • To: your email address
  • Subject: Morning Digest — {{new Date().toLocaleDateString()}}
  • Body: {{lastOutput.content}}

Email triage with AI

What it does: When a new email arrives, classify it with AI and route urgent messages to Slack.

Nodes: Start (App: Gmail) → AI Agent → Condition → Action (Slack) / Action (Gmail: label)

Configuration

Start node:

  • Trigger: App → Gmail → Email Received
  • Connect Google account

AI Agent:

  • Prompt: Classify this email as "urgent", "normal", or "low". Return JSON with "priority" and "summary" fields.\n\nSubject: {{inputs.subject}}\nBody: {{inputs.body}}

Transform (Parse JSON): parse {{lastOutput.content}}

Condition:

  • If: lastOutput.priority === 'urgent' → Slack notification
  • Else → Gmail label (archive/normal)

Action (Slack):

  • Message: Urgent email: {{lastOutput.summary}}

API data pipeline

What it does: Fetch data from an API, clean it with a Function node, reshape it, and save to a database.

Nodes: Start (Manual) → HTTP Request → Function → Transform (Edit Fields) → Action (PostgreSQL)

Configuration

HTTP Request:

  • Method: GET
  • URL: https://api.example.com/v1/users?status=active
  • Headers: Authorization: Bearer {{variables.apiToken}}

Function node:

const users = lastOutput.data || [];

return {
  users: users.map(u => ({
    id: u.id,
    name: `${u.first_name} ${u.last_name}`.trim(),
    email: u.email.toLowerCase(),
    active: true,
  })),
  count: users.length,
};

Transform (Edit Fields): map fields for database columns

Action (PostgreSQL → Insert Row): map {{lastOutput}} fields to table columns


Google Sheets to Slack

What it does: Read rows from a Google Sheet and post each row's summary to Slack.

Nodes: Start (Manual) → Action (Sheets: Read Rows) → Loop → Transform → Action (Slack)

Configuration

Action (Google Sheets → Read Rows):

  • Connect Google account
  • Spreadsheet ID: your sheet ID
  • Range: Sheet1!A2:D100

Loop:

  • Loop Over: {{lastOutput.rows}}

Transform (Edit Fields):

FieldValue
textNew entry: {{loopItem.name}} — {{loopItem.status}}

Action (Slack → Send Message):

  • Channel: #updates
  • Message: {{lastOutput.text}}

Scheduled report generator

What it does: Weekly report that pulls metrics from an API, generates analysis with AI, and emails it.

Nodes: Start (Schedule) → HTTP Request → AI Agent → Transform → Action (Gmail)

Configuration

Start node:

  • Cron: 0 9 * * 1 (Monday 9 AM)

HTTP Request:

  • Fetch your analytics/metrics endpoint

AI Agent:

  • Model: gpt-4o
  • Prompt: You are a business analyst. Review these weekly metrics and write an executive summary with trends, highlights, and recommendations:\n\n{{lastOutput}}

Transform (Edit Fields):

FieldValue
subjectWeekly Report — Week of {{new Date().toLocaleDateString()}}
body{{lastOutput.content}}

Action (Gmail → Send Email):


Multi-branch approval flow

What it does: Classify incoming requests with AI and route to different team channels based on category.

Nodes: Start (Webhook) → AI Agent → Transform (Parse JSON) → Condition → 3× Action (Slack)

Configuration

AI Agent:

  • Prompt: Categorize this request into "billing", "technical", or "general". Return JSON with "category" and "summary".\n\n{{inputs}}

Condition:

  • If: lastOutput.category === 'billing' → #billing channel
  • Else If: lastOutput.category === 'technical' → #tech-support channel
  • Else: → #general channel

Each branch connects to a Slack Action node with the appropriate channel.


Social content pipeline

What it does: Generate a batch of social posts with AI, then optimize and post each one.

Nodes: Start (Manual) → AI Agent → Transform (Parse JSON) → Loop → AI Agent → Action (Telegram/Slack)

Configuration

AI Agent (generate):

  • Prompt: Generate 5 social media posts about {{inputs.topic}}. Return JSON with a "posts" array, each having "content" and "hashtags".

Loop:

  • Loop Over: {{lastOutput.posts}}

AI Agent (optimize, inside loop):

  • Prompt: Make this post more engaging for {{variables.platform}}:\n\n{{loopItem.content}}\n\nHashtags: {{loopItem.hashtags}}

Action (Telegram/Slack):

  • Post the optimized content for review before publishing

Workflow variables

KeyValue
platformtwitter
topicworkflow automation tips

Building your own recipes

Combine the node types and integration patterns to create custom workflows:

  1. Start with the trigger that matches your use case.
  2. Add processing nodes (AI, Transform, Function) in the middle.
  3. End with delivery nodes (Action, HTTP Request).
  4. Use Condition nodes for branching and Loop nodes for batch processing.
  5. Test each step individually with Manual trigger and Execution Data inspection.