by David Olusola
Overview: Automated WordPress Post Archiving This workflow is designed to maintain your blog's health and SEO by automatically moving old, published posts into a "draft" or "archive" state. This prevents outdated or low-traffic content from negatively impacting your site's performance and allows you to easily review and update them later. How It Works Quarterly Trigger: The workflow is set to run automatically on a recurring schedule, specifically on the 1st day of every 3rd month (quarterly). This ensures that your content is regularly audited without any manual intervention. Find Old Posts: The workflow connects to your WordPress site and fetches all published posts that are older than a specified time frame (in this case, 12 months). It uses the WordPress API's filtering capabilities to efficiently find the right content. Check if Posts Found: An If node checks if the previous step found any posts. This prevents the workflow from running further steps if there's nothing to archive. If no posts are found, the workflow ends and logs this. Archive Post: If posts are found, the workflow proceeds to update each one. It changes the post's status from publish to draft and automatically adds tags like archived and old-content for easy identification within your WordPress dashboard. Send Notification: After the archiving process is complete, the workflow sends an email notification to the administrator. This provides a summary of the activity, letting you know that the task has been completed. Setup Steps Configure WordPress Credentials: In both the Find Old Posts and Archive Post nodes, you need to add your WordPress credentials. This typically involves entering your site URL and creating an application password in your WordPress admin dashboard for secure API access. Set Up Email Credentials: In the Send Notification node, add your email service credentials (like SMTP or a Gmail account) to enable the workflow to send you the completion notification. Adjust the Archiving Period: In the Find Old Posts node, the current expression is {{ $now.minus({ months: 12 }).toISO() }} which archives posts older than 12 months. You can change the number of months to fit your content strategy (e.g., 24 for two years). Customize Tags: In the Archive Post node, you can customize the tags to better suit your needs. You can change or add new tags that will be applied to the archived posts. Activate the Workflow: Once all credentials and settings are configured, make sure to activate the workflow to set the quarterly schedule in motion.
by n8nwizard
π§Ύ Overview This n8n workflow automates the process of fetching user data from an API, verifying its validity, transforming the response, and then saving it to Google Sheets for team collaboration. Additionally, it generates a CSV backup file of the same data for offline access or external integrations. Perfect for developers, analysts, or teams who want an automated, no-code data ingestion and backup solution. βοΈ Key Features π Fetches data from any REST API endpoint (e.g., RandomUser API) β Validates successful API responses before processing π§ Transforms JSON response into simple key-value pairs (name and country) π Appends data directly into Google Sheets πΎ Generates a downloadable CSV backup file π§± Modular design β easily customizable and extendable π§± Workflow Steps 1. Start Workflow Manually (Manual Trigger Node) The workflow starts manually by clicking Execute Workflow. You can later replace this with a Cron or Webhook trigger for automation. 2. Fetch User Data from API (HTTP Request Node) Makes an HTTP GET request to the configured API endpoint defined in the environment variable BASE_URL. Example: https://randomuser.me/api/?results=10 This node fetches raw user data in JSON format. 3. Verify API Response Success (If Node) Checks if the API response returned an HTTP 200 status code. β If status = 200 β Continue processing data β If status β 200 β Trigger Stop and Error node to halt execution This prevents saving invalid or failed responses. 4. Transform API Data to Name and Country (Function Node) Formats the raw JSON data to extract key details (name and country) from each user record. Input Example: { "results": [ { "name": { "first": "John", "last": "Doe" }, "location": { "country": "United States" } } ] } Output Example: [ { "name": "John Doe", "country": "United States" } ] This step makes the data compatible with Google Sheets. 5. Append Data to Google Sheets (Google Sheets Node) Appends the formatted data to your specified Google Sheet. Environment Variables Required: GOOGLE_SHEET_ID β ID of your target Google Sheet Configuration: Range:** A:B Columns:** Name (A) and Country (B) Example Google Sheet: | Name | Country | | ---------- | ------------- | | John Doe | United States | | Jane Smith | Canada | 6. Create CSV Backup File (Spreadsheet File Node) Generates a .csv file named users_backup_export.csv containing all saved user data. This file can be: Stored locally Sent via email Uploaded to cloud storage (e.g., Google Drive, Dropbox) Used for external analytics tools β οΈ Error Handling If the API response is invalid (non-200), the Stop on API Failure node halts the workflow and logs the error: > β API request failed β status code not 200. Workflow stopped. This ensures only valid data is stored. π§° Setup Instructions Add Environment Variables: BASE_URL=https://randomuser.me/api/?results=10 GOOGLE_SHEET_ID=<your_google_sheet_id> Add Credentials: Google Sheets OAuth2 credentials API (if authentication is required) Run Workflow: Start manually or configure a Cron node to run periodically Check Output: Data appears in your Google Sheet CSV file is created in n8nβs file system π§© Customization Options | Goal | How to Modify | | ----------------------- | ----------------------------------------------------------------- | | Change API fields | Edit Transform API Data function to extract desired fields | | Add columns | Expand output object and update Google Sheets range (e.g., A:D) | | Automate execution | Replace manual trigger with a Cron or Webhook node | | Filter users | Add an If node after transformation to include/exclude data | | Send email notification | Add Gmail or SMTP node after CSV creation | π§ Example Use Case A recruiter fetches random candidate data daily from an HR API. Data (Name + Country) is saved to Google Sheets. A CSV backup is automatically generated for offline analysis. β Benefits Hands-free automated data collection Centralized storage in Google Sheets for team access Built-in CSV export for reporting and backups Protects data integrity with API validation Fully customizable for any API format β¨ Tip: Add a Slack or Telegram node at the end to notify your team whenever new data is added successfully!
by Yassin Zehar
Description This workflow sends a personalized email when a task in a Google Sheet is marked as Urgent, but only once per task. It prevents duplicate notifications by updating the sheet after the email is sent. Ideal for collaborative task tracking where multiple people edit the same spreadsheet. Context When working with shared task lists in Google Sheets, itβs easy to miss critical updates β or worse, trigger multiple alerts for the same task. This workflow ensures that each "Urgent" task only sends one email notification, and then marks it as βNotifiedβ to avoid duplicates. Target Users Project Managers using Google Sheets Operations or support teams managing collaborative task boards Anyone who needs alert automation with built-in anti-spam logic Technical Requirements Google Sheets account with edit access Gmail account for sending notifications Google Sheet with columns: Priority Notified Task Owner Deadline Status Next Step Workflow Steps Trigger: Watches for changes in Google Sheets (e.g., edits to the "Priority" column) IF Node β Checks that: Priority = Urgent Notified is empty row exists (required for update) Send Email: Sends a personalized message with task details Update Row: Writes βYesβ in the Notified column to avoid duplicate alerts Setup Instructions To set up this workflow: Connect your Google Sheets and Gmail credentials in n8n. Copy the spreadsheet structure or use your own Import the workflow, select your Sheet (and the column to check if you use a different Google Sheets template), and test by marking a task as βUrgentβ. Check that an email is sent and the βNotifiedβ column updates to βYesβ.- Key Features β One email per urgent task β prevents duplicates π§ Dynamic email content with task info π§ Built-in anti-spam logic π Simple to configure and reuse π¬ Customizable for any teamβs needs Expected Output An email alert is sent only once per task marked as Urgent The Notified field is updated in the Google Sheet A clean and scalable alert system with no duplicates Tutorial video: Watch the Youtube Tutorial video About me : Iβm Yassin a Project & Product Manager Scaling tech products with data-driven project management. π¬ Feel free to connect with me on Linkedin
by Javier Rieiro
Description Automates daily CVE-driven scanning against bug bounty scopes. It fetches bug-bounty domains, pulls newly published Project Discovery templates, converts them to Nuclei rules, runs targeted scans, and emails findings. Objective Help security researchers and bug bounty hunters discover exploitable instances quickly by automatically running the latest public templates from Project Discovery against a consolidated bug-bounty scope. Reduce manual steps and maintain continuous reconnaissance. How it works The workflow accepts or fetches a domain list that covers HackerOne, Bugcrowd, Intigriti, and YesWeHack. It downloads the latest public templates from Project Discovery. For each new template published since the last run it: creates a file, uploads it to a remote host, and converts it to a Nuclei-compatible YAML. It uploads a consolidated domains wordlist to the remote host. It executes Nuclei with the new templates against the domains list using configured flags (concurrency, rate limits, severity tags). It collects and deduplicates Nuclei output. If results exist, it sends the findings via Gmail. Requirements β’ SSH access (root or equivalent) to a VPS or host. β’ Nuclei installed on the remote host. β’ Gmail OAuth2 credentials for sending notifications. β’ Recommended: VPS with enough CPU and network capacity for concurrent scanning when scope is large.
by Oneclick AI Squad
This n8n workflow ensures instant notifications to parents and staff during school emergencies. It processes incoming alerts via webhooks, filters active emergencies, and sends notifications through email and Slack. Key Features Instant Alerts**: Triggers notifications immediately upon detecting emergencies. Multi-Channel**: Sends alerts via email and Slack for broad reach. Automated Filtering**: Identifies and processes only active emergency alerts. Reliable Delivery**: Ensures notifications reach parents and staff swiftly. No Action Needed**: Skips inactive alerts without further processing. Workflow Process Webhook Trigger: Receives POST requests with emergency data. Filter Emergency Alerts: Checks and validates active emergency alerts. Send Email Alert: Delivers email notifications to parents and staff. Send Slack Alert: Posts real-time messages to a Slack channel. No Action for Inactive: Ignores and stops for inactive alerts. Setup Instructions Import Workflow**: Load the workflow into n8n using the import feature. Configure Webhook**: Set up a webhook URL to receive emergency data. Set Up Notifications**: Add email (e.g., Gmail) and Slack credentials. Activate**: Save and enable the workflow in n8n. Test**: Simulate an alert to ensure notifications work. Requirements n8n Instance**: Hosted or cloud-based n8n environment. Webhook Source**: System to send emergency data via POST. Email Service**: SMTP setup for email alerts. Slack Integration**: Configured Slack workspace for alerts. Customization Options Add Channels**: Include SMS or other platforms for alerts. Adjust Filters**: Modify criteria for active alerts. Custom Messages**: Tailor email/Slack content for clarity.
by Oneclick AI Squad
This automated n8n workflow enables launching AWS EC2 instances directly from a Google Sheets document. Users can specify instance details (e.g., region, instance type, key pair) in a Google Sheet, triggering the workflow to create EC2 instances via the AWS API. The workflow updates the sheet with instance information and sends confirmation emails. Fundamental Aspects Google Sheets Trigger**: Initiates the workflow when a new row is added or updated in the Google Sheet. Extract Instance Details**: Parses region, instance type, key pair name, and instance name from the sheet. Validate Inputs**: Checks for required fields and valid AWS configurations. Launch EC2 Instance**: Uses the AWS EC2 API to launch the specified instance. Update Google Sheet**: Adds instance ID and status to the sheet. Send Confirmation Email**: Notifies the user via email with instance details. Setup Instructions Import the Workflow into n8n**: Download the workflow JSON and import it via the n8n interface. Configure API Credentials**: Set up Google Sheets API credentials with appropriate permissions. Configure AWS IAM credentials with EC2 launch permissions. Configure SMTP credentials for email notifications. Prepare Google Sheet**: Create a sheet with columns for region, instance type, key pair name, instance name, instance ID, and status. Run the Workflow**: Activate the Google Sheets trigger and test by adding a row with instance details. Verify Responses**: Check the Google Sheet for updated instance IDs and emails for confirmation. Adjust Parameters**: Fine-tune AWS region settings or email templates as needed. Technical Dependencies Google Sheets API**: For reading and writing data. AWS EC2 API**: For launching and managing instances. SMTP Service**: For sending confirmation emails. n8n**: For workflow automation and integration. Customization Possibilities Add Instance Types**: Support additional EC2 instance types. Enhance Validation**: Add checks for AWS limits or quotas. Support Tags**: Include custom tags for launched instances. Add Logging**: Integrate with a logging service for workflow tracking. Customize Emails**: Adjust email content or add attachments.
by Anan
π’ Monitor n8n releases and get notifications for new versions π This workflow automatically monitors n8nβs release channels (latest and beta) and sends you email notifications whenever a new version is published. It also reads the version of your current n8n instance, allowing you to integrate automatic updates and ensure you never miss a release. Who is this for This workflow is designed for n8n users who want to stay informed and up to date with new releases and features without manually checking for updates, especially those managing their own instances who need to plan upgrades and review release notes. How it works The workflow performs the following steps: Fetches version information from the npm registry** (latest and beta releases) Identifies only new versions** by deduplication Retrieves release notes from GitHub** for any newly detected version Converts Markdown to HTML** for email template formatting Sends a styled email notification** including the release name, version tag, your current version, and the complete release notes Setup Configure your n8n instance URL (Set my_n8n_url) to detect your current version (optional β can be left blank) Connect and authorize the Gmail account used to send emails Update the recipient email address in the Gmail node Requirements A Gmail account for sending emails Customization tips Adjust the schedule trigger if hourly checks are too frequent Modify the release channel (e.g., βlatestβ or βbetaβ) if you want to track a different tag Change the npm registry link if you want to monitor a different package Customize the email template/styling in the Gmail node Add additional notification channels (Slack, Discord, etc.) alongside or instead of email Extend this workflow to automatically update your n8n instance when a new release becomes available Need help? If you're facing any issues using this workflow, join the community discussion on the n8n forum.
by 1Shot API
This workflow contains community nodes that are only compatible with the self-hosted version of n8n. Dollar Cost Averaging with Uniswap V3 This workflow lets you set up an scheduled workflow to dollar cost average (DCA) into any token on a custom schedule using 1Shot API and the Uniswap V3 protocol. Choose your schedule input token and output token and optionally configure the workflow to send you notifications in Telegram everytime your workflow completes a swap. YouTube Tutorial You can watch the full end-to-end tutorial for this workflow on our YouTube channel. Wallet Delegation Importantly, this workflow uses Metamasks Delegation Framework which lets you DCA from an account you custody whithout ever exporting your private key or giving up control of your assets. Setup Create a free 1Shot API account, provision a server wallet to relay transactions, and generate an API key to connect to n8n. Import the following Uniswap contracts into your 1Shot API account for the chain you want to swap on: QuoterV2, SwapRouter02, and the token pool (needed to compute time-weighted average price (TWAP). Import the approve function for the ERC-20 token you want to use to purchase your target asset (this should be the token0 or token1 of the pool you imported in step 2). Click on the server wallet details you created, fund it with enough gas tokens to pay for your transactions, then generate a delegation for the SwapRouter02 contract and the ERC-20 token from steps 2 and 3. Import the DCA workflow and use your 1Shot API key/secret to create a credential. Point the 1Shot API nodes at the appropriate smart contract functions you imported in steps 2 and 3. In the Swap Configs node, set the amount of the in token you want to spend on each purchase - for example, if you are using USDC (which has 6 decimals) and you want to purchase $10 every purchase, then amountDCA should be 10000000. Also set the correct addresses for the SwapRouterV2, token0, token1 and fee of the pool you are using. Lastly, set the frequency of your DCA in the trigger node and activate! Optional Telegram Notifications You can configure a Telegarm bot to notifiy you everytime the workflow completes to send you a transaction has and you remaining balance in your purchasing funds.
by ConnectSafely
Send Connection Requests to LinkedIn Post Commenters - Automated Outreach with Personalized Messages using ConnectSafely.AI Who's it for This workflow is built for content creators, founders, sales professionals, and LinkedIn thought leaders who want to convert post engagement into real connections. Perfect for anyone who creates content that attracts comments but doesn't have time to manually connect with every person who engages. If you're publishing LinkedIn content regularly and want to build your network with warm leads (people already interested in what you're saying), this automation handles the tedious work of sending personalized connection requests while you focus on creating more content. How it works The workflow automates the entire connection request process by combining intelligent filtering with personalized messaging through ConnectSafely.ai's API. The process flow: Displays a web form where you paste your LinkedIn post URL Fetches all comments from the specified post via ConnectSafely.ai API Splits commenters into individual items for sequential processing Loops through each commenter one at a time Checks relationship status (already connected? pending request?) Filters out existing connections and pending invitations Generates unique personalized messages using spin text variations Sends connection request with the personalized message Waits 1-2 hours between requests for rate limiting Loops back to process the next commenter until complete The smart filtering ensures you never send duplicate requests or spam existing connections. Setup steps Step 1: Install ConnectSafely.ai Community Node Install the Package Go to Settings β Community Nodes in your n8n instance Search for n8n-nodes-connectsafely.ai Click Install IMPORTANT: Restart n8n completely after installation Alternative (Command Line): npm install n8n-nodes-connectsafely.ai Documentation: https://connectsafely.ai/n8n-docs Step 2: Configure ConnectSafely.ai API Credentials Obtain API Key Log into ConnectSafely.ai Dashboard Navigate to Settings β API Keys Generate a new API key Copy your Account ID from the Accounts section Add Credentials in n8n Go to Credentials in n8n Click Add Credential β ConnectSafely API Paste your API key Save the credential This credential is used by all ConnectSafely nodes in the workflow. Step 3: Configure the Form Trigger The workflow uses a Form Trigger to capture your LinkedIn post URL: | Field | Configuration | |-------|---------------| | Form Title | π LinkedIn Post Engagement Automation | | Form Description | Enter your LinkedIn post URL below to automatically send personalized connection requests | | Field Label | LinkedIn Post URL | | Placeholder | https://www.linkedin.com/posts/your-post-url... | | Required | Yes | To get your form URL: Click Test Workflow button Copy the webhook URL that appears Open this URL in your browser to access the form Step 4: Customize Your Connection Message Edit the spin text template in the Generate Personalized Message code node: const template = `{Thanks for|Really appreciate|Awesome to see|Loved seeing|Grateful for} {you|you taking a moment to|you recently} {liking|engaging with|reacting to|showing interest in|checking out} {my|our|the} {post|recent post|latest content piece|content|update} on {this topic|that topic|the subject}. {Would love to|Happy to|Let's definitely|Open to|Excited to} connect {and|so we can|to} {exchange ideas|share insights|continue the conversation|explore potential collaborations|stay connected professionally}. {Always enjoy connecting with|Always excited to meet|Love meeting|Great connecting with} {like-minded people|professionals in the space|people exploring similar topics|others in this domain}. {Cheers|Best regards|Thanks again|Looking forward|Talk soon|Warm regards}, YourName `; Spin Text Syntax: Use {option1|option2|option3} for random variations Each request gets a unique combination Keep total message under 300 characters (LinkedIn limit) Step 5: Configure Rate Limiting The Wait (Rate Limiting) node controls the delay between connection requests: | Setting | Recommended Value | Description | |---------|-------------------|-------------| | Wait Time | 1-2 hours | Time between each connection request | | Unit | Hours | Keeps your account safe from spam detection | Pro Tip: Start with 2-hour delays for new accounts, reduce to 1 hour once your account is warmed up. Step 6: Test the Workflow Click Test Workflow to get the form URL Open the form URL in your browser Paste a LinkedIn post URL with comments Submit the form Verify each step: Comments are fetched correctly Relationship check returns status Messages generate with variations Connection request sends successfully First Run Tips: Start with a post that has 5-10 comments Test during off-hours Monitor closely for any errors Customization Message Personalization The workflow automatically includes the commenter's name in the greeting: customMessage: "Hi {{ $('π Loop Over Items').item.json.authorName }},\n\n{{ $json.generatedMessage }}" Add more personalization by referencing the comment text: // Access the actual comment they left const theirComment = $('π Loop Over Items').item.json.commentText; Filter Logic Edit the Should Send Request? IF node conditions: Current Logic (Both must be TRUE): connected = false (not already connected) invitationSent = false (no pending request) Additional Filters You Can Add: Filter by connection degree (2nd vs 3rd degree) Filter by profile completeness Filter by follower count // Example: Only connect with 2nd degree connections $json.connectionDegree === "DISTANCE_2" Rate Limiting Adjustments | Account Status | Recommended Delay | Daily Limit | |----------------|-------------------|-------------| | New Account | 2 hours | 10-12 requests | | Warmed Up (1-2 weeks) | 1 hour | 20-24 requests | | Established (1+ month) | 45 minutes | 30-35 requests | Use Cases Content Creator Growth**: Convert every engaged follower into a connection automatically Thought Leadership**: Build relationships with people who resonate with your ideas Sales Prospecting**: Connect with warm leads who already showed interest in your content Community Building**: Expand your network with like-minded professionals Event Promotion**: Connect with commenters before launching webinars or courses Recruiting**: Reach candidates who engage with your company culture posts Troubleshooting Common Issues & Solutions Issue: ConnectSafely node not appearing after install Solution**: Completely restart n8n (not just refresh). Kill the process and start again. Issue: "Invalid Profile ID" error Solution**: The workflow uses publicIdentifier (username), not the full URL. Verify the mapping is correct. Issue: Connection request fails with "already connected" Solution**: The relationship check should filter these out. Verify the IF node conditions are set correctly. Issue: Messages appear identical Solution**: Check that the spin text syntax uses {option1|option2} format with the pipe character, not commas. Issue: Workflow stops after first person Solution**: Ensure the Wait node connects back to the Loop node, and the Loop node has Reset: FALSE configured. Issue: Form URL not appearing Solution**: You must click "Test Workflow" first to generate the webhook URL. Issue: Rate limiting warnings from LinkedIn Solution**: Increase the wait time between requests. Start with 2-hour delays and ensure your account is warmed up. Documentation & Resources Official Documentation ConnectSafely.ai Docs**: https://connectsafely.ai/docs n8n Package Docs**: https://connectsafely.ai/n8n-docs API Reference**: Available in ConnectSafely.ai dashboard Support Channels Email Support**: support@connectsafely.ai Documentation**: https://connectsafely.ai/docs Custom Workflows**: Contact us for custom automation Connect With Us Stay updated with the latest automation tips, LinkedIn strategies, and platform updates: LinkedIn**: linkedin.com/company/connectsafelyai YouTube**: youtube.com/@ConnectSafelyAI-v2x Instagram**: instagram.com/connectsafely.ai Facebook**: facebook.com/connectsafelyai X (Twitter)**: x.com/AiConnectsafely Bluesky**: connectsafelyai.bsky.social Mastodon**: mastodon.social/@connectsafely Need Custom Workflows? Looking to build sophisticated LinkedIn automation workflows tailored to your business needs? Contact our team for custom automation development, strategy consulting, and enterprise solutions. We specialize in: Multi-channel engagement workflows AI-powered personalization at scale Lead scoring and qualification automation CRM integration and data synchronization Custom reporting and analytics pipelines
by Paolo Ronco
A complete workflow to create, send, and verify digital certificates fully automated with n8n.Perfect for courses, events, onboarding, internal training, or product education. Visit my website for the: full deploy guide) See my Templates on Github: paoloronco/n8n-templates) Example-certificate β 1. Certificate Generation When a POST webhook request arrives, the workflow: reads name, surname, course, and email generates a unique Certification ID saves everything in the Data Table β 2. Data Storage Every issued certificate is recorded in an n8n Data Table containing: Name Surname CertificationID This creates a permanent, searchable certificate registry. β 3. PDF Creation Uses PDF Generator API to create a professional PDF certificate from an HTML template: fully customizable (layout, colors, branding) includes candidate data, course, ID, and date β 4. Email Delivery The workflow automatically sends the certificate to the recipient using Gmail OAuth2 with: a predefined subject the PDF attached a customizable message β 5. Verification System A public endpoint /certificationscheck allows: validation of Certification IDs returning the candidateβs name and surname if valid responding with ok: true/false β 6. Included Mini Verification Website A ready-to-use HTML file allows users to: enter a Certification ID verify its authenticity view name and surname if the certificate exists Fully customizable (CSS, texts, branding). π Requirements Before using this workflow, you must have: n8n Data Table with ID fields: Name (string) Surname (string) CertificationID (string) PDF Generator API accountCredentials set in n8n as pdfGeneratorApi. Gmail OAuth2 credentialsConfigured in n8n as gmailOAuth2. Ability to call HTTP POST endpoints from your website, backend, forms, etc. π Installation 1. Import workflow In n8n: Go to Workflows β Import Paste the JSON provided in this repository 2. Configure Data Table Update the following nodes to point to your Data Table: Insert_Certificaton Find_Certification_By_ID Find_Certification_By_ID1 Make sure the Data Table has the fields: | Field | Type | | --- | --- | | Name | string | | Surname | string | | CertificationID | string | 3. Configure Credentials In the workflow: Node Generate_PDF β set PDF Generator API credentials Node Email_Certification β set Gmail OAuth2 credentials 4. Activate Workflow Click Activate in n8n. π§ How the Workflow Works π§© 1. Webhook /certifications Receives candidate data and triggers the workflow. POST https://YOUR-N8N-DOMAIN.com/webhook/certification Headers: name: John surname: Doe course: email: john.doe@example.com π§© 2. Unique ID Generation A Code node creates a random alphanumeric ID.If it already exists, a new one is generated. π§© 3. Data Table Insert Stores the certificate data for future lookup. π§© 4. PDF Generation Builds a PDF from the (fully editable) HTML template. π§© 5. Email Sending Delivers the certificate to the candidate. π Certificate Verification (/certificationscheck) API Behavior Send a POST request https://YOUR-N8N-DOMAIN.com/webhook/certificationcheck with header id: CERTIFICATION-ID. Valid ID: { "ok": "true", "name": "John", "surname": "Doe" } Invalid ID: { "ok": "false" } This request can be made manually (from tools like Postman, cURL, or your backend), or automatically through the HTML verification page included in the GitHub repository (the Cerification_Check.html template) found in your project files
by Katie Allred
π€ AI Instagram Meme Generator Automatically create and post viral memes to Instagram every 12 hours with AI-powered captions and bulletproof reliability Transform your Instagram presence with this enterprise-grade workflow that generates viral memes, creates engaging captions, and posts everything on schedule - complete with error handling and performance tracking! π What This Workflow Does This premium n8n workflow creates a complete meme automation pipeline with professional-grade reliability: π¨ Generate Viral Memes - Uses MagicHour AI to create trending, shareable memes optimized for Instagram π Write Engaging Captions - OpenAI GPT-4 analyzes each meme and crafts viral captions with strategic hashtags π Smart Scheduling - Late API posts to Instagram with optimal timing (5 minutes after generation) β Error Handling - Built-in validation and retry logic ensures 99% reliability π Performance Tracking - Optional logging to monitor success rates and engagement π Continuous Operation - Runs every 12 hours with automatic error recovery Perfect for: Content creators, social media managers, influencers, businesses, agencies managing multiple accounts π Key Features π‘οΈ Enterprise-Grade Reliability Smart Error Handling**: Validates each step before proceeding Automatic Retries**: HTTP requests retry 2-3 times on failure Graceful Failures**: Informative error messages and automatic recovery Timeout Protection**: Prevents hanging on slow API responses π― Viral Content Optimization AI-Powered Generation**: Uses latest MagicHour AI for trending memes Engagement-Focused Captions**: GPT-4 crafts captions for maximum interaction Strategic Hashtags**: Automatically includes relevant, trending hashtags Call-to-Action Integration**: Built-in CTAs to boost engagement βοΈ Professional Features Visual Node Design**: Emoji-labeled nodes for easy navigation Detailed Documentation**: Every node includes helpful notes Success Logging**: Track performance and optimize content Account Validation**: Verifies connections before posting π§ Easy Customization Flexible Scheduling**: Change from 12 hours to any interval Content Themes**: Easily modify meme topics for your niche Multi-Platform Ready**: Built on Late API for future expansion Timezone Support**: Configure for your local posting times π Prerequisites Required Services n8n (free) - Workflow automation platform MagicHour - AI meme generation service (magichour.ai) OpenAI - GPT-4 for caption generation (platform.openai.com) Late - Social media automation (getlate.dev) Instagram Business Account - Connected through Late API Keys Needed MagicHour API key (starts with mhk_live_) OpenAI API key (requires billing setup) Late API key + Profile ID + Instagram Account ID π οΈ Complete Setup Guide Step 1: Acquire API Access π¨ MagicHour Setup Visit MagicHour.ai Create account and verify email Navigate to API settings in dashboard Generate API key (save securely - starts with mhk_live_) Add credits to your account for meme generation π§ OpenAI Configuration Go to OpenAI Platform Create account and complete verification Add payment method (required for API access) Navigate to API Keys section Create new secret key and copy immediately Verify GPT-4 access in your account settings π Late API Setup Visit GetLate.dev and sign up Connect Instagram business/creator account Go to API section and generate API key Copy Profile ID from account settings Note Instagram Account ID from connected accounts Test connection with a manual post Step 2: Import & Configure Workflow Import the Enhanced Workflow Download the enhanced JSON workflow file Open n8n in your browser or desktop app Click "Import from file" in the workflows section Select the downloaded JSON file Click "Import workflow" - you'll see emoji-labeled nodes Configure API Credentials π¨ MagicHour API Credentials: Click on the "π¨ Generate Meme" node Click credential dropdown β "Create New" Select "HTTP Header Auth" Configure: Name: MagicHour API Header Name: Authorization Header Value: Bearer YOUR_MAGICHOUR_API_KEY Test connection and save π§ OpenAI API Credentials: Click on the "π Generate AI Caption" node Click credential dropdown β "Create New" Select "OpenAI" Enter your OpenAI API key Test with a simple prompt and save π Late API Credentials: Click any Late node (π€, π, or π±) Click credential dropdown β "Create New" Select "HTTP Header Auth" Configure: Name: Late API Header Name: Authorization Header Value: Bearer YOUR_LATE_API_KEY Save credentials Step 3: Customize Workflow Settings π Update Late Account Information Click "π Get Connected Accounts" node Update query parameter: profileId: Replace YOUR_LATE_PROFILE_ID with your actual Profile ID Click "π± Post to Instagram" node Update JSON body: accountId: Replace YOUR_INSTAGRAM_ACCOUNT_ID with your Instagram Account ID timezone: Change to your timezone (e.g., "America/Los_Angeles", "Europe/London") π¨ Customize Meme Content Click "π¨ Generate Meme" node Edit the topic in JSON body to match your brand: Example Niche Topics: // Fitness/Health "topic": "Create funny, motivational fitness memes about gym struggles, workout wins, and healthy lifestyle humor that fitness enthusiasts will love and share" // Business/Entrepreneurship "topic": "Generate relatable business and entrepreneur memes about startup life, work-from-home struggles, and success mindset that professionals will engage with" // Pet/Animal Content "topic": "Make adorable and funny pet memes featuring cats, dogs, and animal behavior that pet owners find irresistibly shareable" // Gaming Content "topic": "Create gaming memes about popular video games, streaming culture, and gamer life that the gaming community will love" // General Viral Content (default) "topic": "Create a funny, relatable meme that would go viral on Instagram. Focus on everyday situations, trending topics, or universal experiences that people can relate to. Keep it light-hearted and shareable." π Adjust Posting Schedule Click "π Schedule Trigger" node and modify: Every 6 hours**: "hoursInterval": 6 Daily**: "hoursInterval": 24 Twice daily**: "hoursInterval": 12 (recommended) Weekly**: "hoursInterval": 168 Step 4: Test Your Workflow Manual Test Run Click "Execute Workflow" button in top-right Watch the flow: π¨ Generate Meme: Should create meme request β³ Wait: 20-second pause for generation πΌοΈ Get Image: Retrieves completed meme β Check Image: Validates successful generation π Caption: Creates AI-powered caption π€/π Late Setup: Validates account connections π± Post: Schedules to Instagram π Log: Records successful execution Troubleshoot Failed Nodes Red nodes indicate errors: π¨ Generation fails**: Check MagicHour API key and credits π Caption fails**: Verify OpenAI API key and billing π± Posting fails**: Confirm Late credentials and Instagram connection β Validation fails**: Meme generation unsuccessful - will retry next run Step 5: Activate Automation Toggle workflow to "Active" (switch in top-right) Verify green status indicator Check execution log for successful runs Monitor Instagram for your first automated post βοΈ Advanced Customization π― Content Strategy Optimization Multi-Theme Approach Create multiple workflows for different content pillars: Duplicate this workflow 3-4 times Customize meme topics for each: Morning motivation (6 AM posts) Midday humor (12 PM posts) Evening entertainment (6 PM posts) Weekend lifestyle (varies) Seasonal Content Modify topics for holidays/events: // Holiday themed "topic": "Create funny holiday memes about [Christmas/Halloween/Valentine's] that are festive but relatable to everyone" // Current events (update monthly) "topic": "Generate memes about current trends and pop culture moments that are happening right now" π Caption Enhancement Customize Caption Style Modify the OpenAI prompt in "π Generate AI Caption": // For Professional Brands "Analyze this meme and write a professional yet engaging Instagram caption. Keep it clean, brand-safe, and include 3-5 business-relevant hashtags. Add a subtle call-to-action." // For Casual/Fun Brands "Write a super casual, fun Instagram caption for this meme. Use internet slang, trending phrases, and 6-8 viral hashtags. Make it feel like it's from a friend." // For Educational Content "Create an educational Instagram caption that uses this meme to teach a valuable lesson. Include learning-focused hashtags and encourage discussion in comments." π Performance Tracking Enhanced Logging Setup Click "π Log Success" node Replace httpbin.org URL with your logging service: Google Sheets: Use n8n Google Sheets node Airtable: Log to content calendar base Slack: Send success notifications Discord: Post to team channel Analytics Integration Add Instagram analytics tracking: Install Instagram Basic Display API Create new workflow to fetch post performance Track: Likes, comments, shares, reach Optimize: Adjust posting times based on data π§ Troubleshooting Guide Common Issues & Solutions π¨ "Meme generation failed" Error Check**: MagicHour account credits Verify**: API key format (Bearer mhk_live_...) Solution**: Add credits or regenerate API key π¨ "Caption generation timeout" Check**: OpenAI billing status Verify**: GPT-4 model access Solution**: Upgrade OpenAI plan or switch to GPT-3.5 π¨ "Instagram posting failed" Check**: Instagram account type (must be Business/Creator) Verify**: Late connection status Solution**: Reconnect Instagram in Late dashboard π¨ "Workflow stops unexpectedly" Check**: Node error messages in execution log Verify**: All credentials are properly configured Solution**: Re-run manual test and fix identified issues Performance Optimization Improve Success Rate: Monitor** execution history weekly Adjust** wait time if generation often fails Update** meme topics based on trending content Test** different posting times for your audience Boost Engagement: Analyze** which meme styles perform best A/B test** different caption styles Adjust** hashtag strategy based on reach Engage** with comments to boost algorithm ranking π Expected Results & ROI π― Performance Metrics After 30 days of automation, expect: 60+ high-quality memes** posted automatically 15-25% increase** in follower growth 40-60% improvement** in engagement rate 10+ hours saved** per week on content creation Consistent posting** improving algorithm favorability π° Return on Investment Time Savings Calculation: Manual meme creation**: 30 minutes per post Caption writing**: 10 minutes per post Scheduling/posting**: 5 minutes per post Total manual time: 45 minutes Γ 60 posts = **45 hours/month With automation: Setup time**: 2 hours (one-time) Monthly monitoring**: 1 hour Total automated time: **3 hours/month ROI: Save 42 hours monthly = $2,100+ value (at $50/hour rate) π Scaling Opportunities Expand your success: Add more platforms via Late (TikTok, Twitter, LinkedIn) Create niche-specific workflows for different audiences Build content series with themed meme campaigns Integrate with email marketing for cross-platform promotion Offer as a service to other creators/businesses π Pro Tips for Maximum Success π¨ Content Optimization Study viral memes** weekly and update your prompts Use trending hashtags** but keep them relevant Post consistently** - algorithm favors regular content Engage authentically** - respond to comments quickly π± Instagram Best Practices Optimal posting times**: Test 9-11 AM and 7-9 PM in your timezone Stories integration**: Manually reshare your best memes to Stories Cross-promotion**: Share on other platforms to drive Instagram traffic Community building**: Use memes to start conversations π Workflow Maintenance Monthly reviews**: Check performance and adjust prompts API monitoring**: Ensure all services remain connected Content audits**: Remove or update outdated topics Backup strategy**: Export workflow settings regularly π― Competition Entry This workflow is my submission for the Late September 2025 n8n Arena Competition! Why This Workflow Wins: β Solves real problems - Saves 40+ hours monthly β Uses Late API extensively - Multi-endpoint integration β Professional quality - Enterprise-grade error handling β Highly customizable - Works for any niche or brand β Comprehensive documentation - Easy setup for anyone β Proven ROI - Measurable time and money savings Help This Workflow Succeed: β Star it on n8n.io if you find it useful π Share with fellow creators and businesses π¬ Leave feedback to help improve it πΈ Tag us in your automated memes (@getlatedev) Let's automate our way to Instagram success together! π Built with β€οΈ for the n8n community by a creator who believes in the power of automation. Questions? Reach out anytime! π What's Next? Coming Soon: Advanced version with: Multi-platform posting (TikTok, Twitter, LinkedIn) A/B testing for captions Sentiment analysis for optimal timing Integration with Instagram analytics Custom meme template uploads Stay tuned for updates! β‘
by Davide
This automation creates a fully integrated pipeline to generate AI-powered videos, store them, and publish them on TikTok β all automatically. It connects OpenAI Sora 2, and Postiz (for TikTok publishing) to streamline content creation. Key Benefits β Full Automation β From text prompt to TikTok upload, everything happens automatically with no manual intervention once set up. β Centralized Control β Google Sheets acts as a simple dashboard to manage prompts, durations, and generated results. β AI-Powered Creativity β Uses OpenAI Sora 2 for realistic video generation and GPT-5 for optimized titles. β Social Media Integration β Seamlessly posts videos to TikTok via Postiz, ready for your audience. β Scalable & Customizable β Can easily be extended to other platforms like YouTube, Instagram, or LinkedIn. β Time-Saving β Eliminates repetitive steps like manual video uploads or caption writing. How it works This workflow automates the end-to-end process of generating AI videos and publishing them to TikTok. It is triggered either manually or on a recurring schedule. Trigger & Data Fetch: The workflow starts by checking a specified Form for new entries. It looks for rows where a video has been requested (a "PROMPT" is filled) but not yet generated (the "VIDEO" column is empty). AI Video Generation: For each new prompt found, the workflow sends a request to the Fal.ai Sora 2 model to generate a video. It then enters a polling loop, repeatedly checking the status of the generation request every 60 seconds until the video is "COMPLETED". Post-Processing & Upload: Once the video is ready, the workflow performs several actions in parallel: Fetch Video & Store: It retrieves the final video URL, downloads the video file Generate Title: It uses the OpenAI GPT-4o-mini model to analyze the original prompt and generate an optimized, engaging title for the video. Publish to TikTok: The video file is uploaded to Postiz, a social media scheduling tool, which then automatically publishes it to a connected TikTok channel, using the AI-generated title as the post's caption. Set up steps To make this workflow functional, you need to complete the following configuration steps: Prepare the Google Sheet: Create a Form with at least "PROMPT", "DURATION", and "VIDEO" fields. Configure Fal.ai for Video Generation: Create an account at Fal.ai and obtain your API key. In both the "Create Video" and "Get status" HTTP Request nodes, set up the "Header Auth" credential. Set the Name to Authorization and the Value to Key YOUR_API_KEY. Set up TikTok Publishing via Postiz: Create an account on Postiz and connect your TikTok account to get a Channel ID. Obtain your Postiz API key. In the "Upload Video to Postiz" and "TikTok" (Postiz) nodes, configure the API credentials. In the "TikTok" node, replace the placeholder "XXX" in the integrationId field with your actual TikTok Channel ID from Postiz. (Optional) Configure AI Title Generation: The "Generate title" node uses OpenAI. Ensure you have valid OpenAI API credentials configured in n8n for this node to work. Need help customizing? Contact me for consulting and support or add me on Linkedin. Header 2