4 templates found
Category:
Author:
Sort:

Transfer data from Postgres to Excel

Read data from Postgres Converting it to XLS Save it to disk

Jan OberhauserBy Jan Oberhauser
4309

Bidirectional GitHub workflow sync & version control for n8n workflows

Who is this for? This template is ideal for n8n administrators, automation engineers, and DevOps teams who want to maintain bidirectional synchronization between their n8n workflows and GitHub repositories. It helps teams keep their workflow backups up-to-date and ensures consistency between their n8n instance and version control system. What problem is this workflow solving? Managing workflow versions across n8n and GitHub can become complex when changes happen in both places. This workflow solves that by automatically synchronizing workflows bidirectionally, ensuring that the most recent version is always available in both systems without manual intervention or version conflicts. What this workflow does: Runs on a weekly schedule (every Monday) to check for synchronization needs. Fetches all workflows from your n8n instance and compares them with GitHub repository files. Identifies workflows that exist only in n8n and uploads them to GitHub as JSON backups. Identifies workflows that exist only in GitHub and creates them in your n8n instance. For workflows that exist in both places, compares timestamps and syncs the most recent version: If n8n version is newer → Updates GitHub with the latest workflow If GitHub version is newer → Updates n8n with the latest workflow Automatically handles file naming, encoding/decoding, and commit messages with timestamps. Setup: Connect GitHub: Configure GitHub API credentials in the GitHub nodes. Note: Use a GitHub Personal Access Token (classic) with repo permissions to read and write workflow files. Connect n8n API: Provide your n8n API credentials in the n8n nodes. Check this doc Configure GitHub Details in the Set GitHub Details node: githubaccountname: Your GitHub username or organization githubreponame: The repository name where workflows should be stored repoworkflowspath: The folder path in your repo (e.g., workflows or n8n-workflows) Adjust Schedule: Modify the Schedule Trigger if you want a different sync frequency (currently set to weekly on Mondays). Test the workflow: Run it manually first to ensure all connections and permissions are working correctly. How to customize this workflow to your needs: Change sync frequency: Modify the Schedule Trigger to run daily, hourly, or on-demand. Add filtering: Extend the Filter node to exclude certain workflows (e.g., test workflows, templates). Add notifications: Insert Slack, email, or webhook notifications to report sync results. Implement conflict resolution: Add custom logic for handling workflows with the same timestamp. Add workflow validation: Include checks to validate workflow JSON before syncing. Branch management: Modify to sync to different branches or create pull requests instead of direct commits. Backup retention: Add logic to maintain multiple versions or archive old workflows. Key Features: Bidirectional sync: Handles changes from both n8n and GitHub Timestamp-based conflict resolution: Always keeps the most recent version Automatic file naming: Converts workflow names to valid filenames Base64 encoding/decoding: Properly handles JSON workflow data Comprehensive comparison: Uses dataset comparison to identify differences Automated commits: Includes timestamps in commit messages for traceability This automated synchronization workflow provides a robust backup and version control solution for n8n workflows, ensuring your automation assets are always safely stored and consistently available across environments.

Wikus BerghBy Wikus Bergh
1408

Multi-platform video publishing from Google Sheets to 9 social networks via Blotato API

This workflow automates the process of publishing content from a Google Sheet to multiple social media platforms using the Blotato API. It retrieves content details (caption and Google Drive video URL) from a Google Sheet, uploads the media to Blotato, and then distributes it to Instagram, Facebook, LinkedIn, TikTok, YouTube, Threads, Twitter, Bluesky, and Pinterest. It also includes a separate branch for generating and publishing an AI-created image to Pinterest. Tools & Services Used Content Source: Google Sheets (for captions, status, and Google Drive video URLs) Media Hosting: Google Drive (for source videos) Social Media Publishing API: Blotato API (for media upload and posting to all platforms) AI Image Generation: OpenAI (DALL-E for generating an image for Pinterest) Target Social Platforms: Instagram Facebook (Pages) LinkedIn TikTok YouTube Threads Twitter (X) Bluesky Pinterest Workflow Overview This automation performs the following steps: Trigger & Content Retrieval: The Schedule Trigger node initiates the workflow on a defined schedule (e.g., every interval). The Google Sheets node reads data from a specified sheet (Sheet1 of "Publish to 9 Social Platforms"). It filters for rows where the "Status" column is "Ready to Post" and returns the first match. This provides the caption and the Google Drive URL for the video content. The Get Google Drive ID node (a Set node) extracts the unique Google Drive file ID from the video URL obtained from the sheet. Configuration & Media Preparation for Blotato: The Setup Social Accounts node (a Set node) defines placeholders for the Blotato API key and various social media account IDs required by the Blotato API. These need to be manually filled with your actual credentials and IDs. The Upload to Blotato node (HTTP Request) uploads the video content to Blotato's media endpoint. It constructs the downloadable Google Drive URL using the extracted file ID and sends it to Blotato along with the API key. Blotato then fetches and stores the media, returning a Blotato media URL. Content Distribution to Social Platforms via Blotato (Parallel Branches from "Upload to Blotato"): The Blotato media URL (from the previous step) and the caption (from Google Sheets) are used to make individual POST requests to the Blotato API (/v2/posts) for each target platform. Each request is an HTTP Request node configured for a specific platform: [Instagram] Publish via Blotato (Disabled by default): Posts to the configured Instagram account. Publish to Facebook: Posts to the configured Facebook Page. Publish to LinkedIn: Posts to the configured LinkedIn account. Publish to Tiktok: Posts to the configured TikTok account, with specific privacy and feature settings. Publish to Youtube: Uploads the video as a public YouTube short/video with a title and notifying subscribers. Publish to Threads: Posts to the configured Threads account (caption sliced to 500 chars). Publish to Twitter: Posts to the configured Twitter (X) account (caption sliced to 280 chars). Publish to Bluesky: Posts text-only (no media URL used in the example body) to the configured Bluesky account (caption sliced to 280 chars). AI Image Generation & Pinterest Publishing (Separate Branch from "Upload to Blotato"): This branch demonstrates an alternative content type. The OpenAI node generates an image based on a prompt ("Image of a manatee staring in the mirror at its AI avatar") and returns image URLs. The Upload to Blotato - Image node (HTTP Request) takes one of these generated image URLs and uploads it to Blotato's media endpoint. The [Pinterest] Publish via Blotato node then posts this AI-generated image to the configured Pinterest account and board, along with the caption from the Google Sheet and a link.

Sam YassineBy Sam Yassine
839

Starred Slack messages to Notion database with AI auto-tagging

Who is this for? Teams that want to capture important Slack messages in Notion with smart categorization. Perfect for knowledge workers, community managers, or any team that needs to preserve valuable conversations from Slack and organize them automatically in a Notion database. What problem does this solve? Important Slack messages get buried in chat history and are hard to find later. This workflow monitors your Slack channel and automatically saves starred messages to Notion with AI-generated titles and smart tags. No more manually copying messages or losing track of important discussions. How it works Trigger - Schedule Trigger fires every 10 minutes to check for new messages. Get Slack Messages - fetches recent messages from your specified Slack channel within the last 10 minutes. Star Filter - only processes messages that have been reacted to with a ⭐ emoji (configurable to any emoji). Get Message Link - retrieves the permanent link to the starred Slack message. Choose Notion DB - connects to your target Notion database and loads available tag options. Set Tags - prepares the available tags from your Notion database for AI processing. AI Processing - uses OpenAI GPT-4o-mini to: Generate a concise title (under 50 characters) Automatically categorize the message with existing tags (90%+ confidence threshold) Create Notion Page - saves the message to Notion with: AI-generated title Auto-selected tags Original message content Permanent link back to Slack Setup steps Import and connect credentials Import this template into n8n Connect your Slack API credentials (Slack Bot Setup Guide) Connect your Notion API token (Notion Integration Guide) Connect your OpenAI API credentials Configure Slack integration Create a Slack bot and add it to your target channel Update the channelId in "Get Slack Messages" node with your channel ID Ensure your bot has these permissions: channels:history - to read channel messages reactions:read - to detect star reactions chat:write.public - to get message permalinks Slack Bot Setup Resources: Creating a Slack App Bot Token Scopes Adding Apps to Channels Set up Notion database Create or use existing Notion database with required properties: Tags (Multi-select) - add tag options with descriptions for better AI accuracy Link (URL) - for storing Slack permalink Title (Title) - will be auto-populated by AI Update the databaseId in "Choose Notion DB" and "Create Notion Page" nodes Customize the workflow Change trigger emoji: Edit the IF condition to use a different emoji (e.g., bookmark, pushpin) Adjust timing: Modify the Schedule Trigger interval (remember to update the "oldest" filter in Get Slack Messages to match) Improve AI prompts: Edit the prompt in "Write Title & Tag" node for better categorization Test the setup Star a message in your Slack channel Wait for the next 10-minute trigger or manually execute the workflow Check your Notion database for the new entry Example output Slack message: > "Hey team, just found this amazing tool for automating our design workflow. We should definitely consider it for next sprint: https://example.com/design-tool" Generated Notion page: Title: "Design Tool Recommendation for Next Sprint" Tags: "Tools", "Design", "Sprint Planning" Content: Full message text with Slack permalink Link: Direct link back to original Slack message Extending the flow Multi-channel support - duplicate the "Get Slack Messages" node for different channels and merge the outputs. Enhanced AI processing - modify the prompt to extract additional metadata like: Priority levels Action items Mentioned team members Due dates Rich content preservation - add logic to handle Slack attachments, images, or threaded replies. Notification system - add nodes to notify team members when important messages are archived. Sentiment analysis - incorporate additional AI processing to categorize message sentiment or urgency. This template provides a lean setup for intelligent Slack-to-Notion archiving. Star important messages, let AI handle the organization, and never lose track of valuable conversations again.

Matty ReedBy Matty Reed
270
All templates loaded