by n8n Team
This workflow generates CSV files containing a list of 10 random users with specific characteristics using OpenAI's GPT-4 model. It then splits this data into batches, converts it to CSV format, and saves it to disk for further use. The execution of the workflow begins from here when triggered manually. "OpenAI" Node. This uses the OpenAI API to generate random user data. The input to the OpenAI API is a fixed string, which asks for a list of 10 random users with some specific attributes. The attributes include a name and surname starting with the same letter, a subscription status, and a subscription date (if they are subscribed). There is also a short example of the JSON object structure. This technique is called one-shot prompting. "Split In Batches" Node. This node is used to handle the OpenAI responses one by one. "Parse JSON" Node. This node converts the content of the message received from the OpenAI node (which is in string format) into a JSON object. "Make JSON Table" Node. This node is used to convert the JSON data into a tabular format, which is easier to handle for further data processing. "Convert to CSV" Node. This node converts the table format data received from the "Make JSON Table" node into CSV format and assigns a file name. "Save to Disk" Node. This node is used to save the CSV generated in the previous node to disk in the ".n8n" directory. The workflow is designed in a circular manner. So, after saving the file to disk, it goes back to the "Split In Batches" node to process the OpenAI output, until all batches are processed.
by n8n Team
This is an example workflow that imports an XML file into an SQL database. The ReadBinaryFiles node loads the XML file from the server. Then the Code node extracts the file content from the binary buffer. Afterwards, an XML node converts the XML string into a JSON structure. Finally, in the MySQL node inserts the data records into the SQL table. In the upper part of the workflow there is another MySQL node that is disabled. This node creates a new table with all the required variables based on the sample SQL database: https://www.mysqltutorial.org/mysql-sample-database.aspx
by Yaron Been
Bytedance Seedance 1 Pro Video Generator Description A pro version of Seedance that offers text-to-video and image-to-video support for 5s or 10s videos, at 480p and 1080p resolution Overview This n8n workflow integrates with the Replicate API to use the bytedance/seedance-1-pro model. This powerful AI model can generate high-quality video content based on your inputs. Features Easy integration with Replicate API Automated status checking and result retrieval Support for all model parameters Error handling and retry logic Clean output formatting Parameters Required Parameters prompt** (string): Text prompt for video generation Optional Parameters fps** (string, default: 24): Frame rate (frames per second) seed** (integer, default: None): Random seed. Set for reproducible generation image** (string, default: None): Input image for image-to-video generation duration** (string, default: 5): Video duration in seconds resolution** (string, default: 1080p): Video resolution aspect_ratio** (string, default: 16:9): Video aspect ratio. Ignored if an image is used. camera_fixed** (boolean, default: False): Whether to fix camera position How to Use Set up your Replicate API key in the workflow Configure the required parameters for your use case Run the workflow to generate video content Access the generated output from the final node API Reference Model: bytedance/seedance-1-pro API Endpoint: https://api.replicate.com/v1/predictions Requirements Replicate API key n8n instance Basic understanding of video generation parameters
by Nskha
Overview This workflow automates the process of notifying users about new emails via Telegram and temporarily hosting the email content on a secret HTML page. It is ideal for users who need immediate notifications and a secure, temporary web view of their email content. Use Cases Immediate notification of new emails in Telegram with the ability to preview the email content in a secure, temporary HTML format. Automation for users who need to keep track of their emails without constantly checking their email client. Useful for teams or individuals who require instant updates on critical emails and prefer a quick preview through a web interface. My Personal Use Case: Secure Subscription Sharing From time to time, I find myself wanting to share my paid subscriptions with friends, but giving out OTP codes manually or sharing my email isn't a good idea due to security concerns. I attempted to use the IMAP node to integrate with Telegram secret channel for this purpose but encountered numerous problems, such as difficulties in scraping content from emails. Additionally, the Telegram API sometimes rejects certain special characters found within email contents. After facing these challenges, I discovered that rendering emails as HTML pages and sharing them directly is the most effective solution. This approach bypasses the issues with character limitations and content scraping, providing a seamless way to share subscription benefits securely. Services/APIs Used | Service/API | Node Type | Description | |----------------------|-------------------------|------------------------------------------------------| | IMAP Email Server | Email Trigger (IMAP) | Triggers the workflow on receiving a new email. | | Telegram API | Telegram | Sends notifications and manages messages in Telegram.| | GitHub Gist API | HTTP Request (Github Gist) | Temporarily hosts email content on GitHub Gist. | | GitHub Gist API (Deletion) | HTTP Request (Github Gist β) | Deletes the temporary GitHub Gist after a specified time. | | Wait | Wait | Delays the workflow for a specified period. | Configuration Steps Email Trigger (IMAP): Configure your IMAP email credentials to enable the workflow to check for new emails. Telegram Nodes: Insert your Telegram bot's API credentials and your chat ID in both Telegram nodes to send and delete messages. Github Gist Nodes: Provide your GitHub API credentials to create and delete Gists. Ensure the GitHub token has the necessary permissions to create and delete Gists. Wait Node: Adjust the wait time according to your preference for how long the email content should be accessible via the HTML page. Screenshot Additional Notes Ensure all credentials are securely stored and have the minimum necessary permissions for the workflow to function. Test the workflow with non-sensitive emails to ensure it operates as expected before using it with critical email accounts. Consider the privacy and security implications of temporarily hosting email content on GitHub Gist. For any questions or issues, refer to the respective API documentation for each service used or consult the n8n community for support.
by Yaron Been
Google Veo 3 Video Generator Description Sound on: Googleβs flagship Veo 3 text to video model, with audio Overview This n8n workflow integrates with the Replicate API to use the google/veo-3 model. This powerful AI model can generate high-quality video content based on your inputs. Features Easy integration with Replicate API Automated status checking and result retrieval Support for all model parameters Error handling and retry logic Clean output formatting Parameters Required Parameters prompt** (string): Text prompt for video generation Optional Parameters seed** (integer, default: None): Random seed. Omit for random generations resolution** (string, default: 720p): Resolution of the generated video negative_prompt** (string, default: None): Description of what to discourage in the generated video How to Use Set up your Replicate API key in the workflow Configure the required parameters for your use case Run the workflow to generate video content Access the generated output from the final node API Reference Model: google/veo-3 API Endpoint: https://api.replicate.com/v1/predictions Requirements Replicate API key n8n instance Basic understanding of video generation parameters
by AlQaisi
Streamline data from an n8n form into Google Sheet Airtable and and Email Sending Video for workflow process This workflow facilitates efficient data collection and management by leveraging the capabilities of various nodes within the n8n platform. It commences with the n8n Form Trigger node, where users provide their name, location, and email address. Subsequently, the data seamlessly flows through nodes like Google Sheets, Code, Set, Airtable, Gmail, and Gmail1 for processing and storage. n8n Form Trigger:** Gathers user input data, including Name, City, and Email. Google Sheets:** Manages data operations related to Google Sheets. Code:** Executes JavaScript code to manipulate data fields. Set:** Formats and sets data values for further processing. Airtable:** Facilitates data operations specific to Airtable. Gmail:** Sends custom emails to the provided Email address. Gmail:** Sends additional emails using different templates. Each node within the workflow performs specialized tasks such as extracting date and time fields, formatting data, appending it to Google Sheets and Airtable, and sending personalized emails to the submitter. This streamlined process ensures effective handling of collected information and enhances overall data management efficiency. Workflow Description: n8n Form Trigger: A trigger node that initiates the workflow upon form submission. Captures essential user details like Name, City, and Email. Extracting Date and Time Fields from 'submittedAt' Field: Utilizes a code node to extract Date and Time information from the submitted data. Format the Fields: Standardizes the format of extracted fields (Name, City, Date, Time, Email) for consistency. Airtable: Creates a new record in Airtable with the formatted data. Includes columns for Name, City, Email, Time, and Date. Google Sheets: Appends the formatted data to a designated Google Sheet. Includes columns for Name, City, Email, Date, and Time. Gmail: Sends an email to the provided Email address with a customized message. Subject: "Testing Text Message Delivery" Message: Personalized content with a Name placeholder. Gmail1: Sends another email using a different template. Subject incorporates the Date field for variation. Message content tailored to the subject line. Workflow Connections: n8n Form Trigger -> Extracting Date and Time Fields -> Format the Fields -> Google Sheets & Airtable -> Gmail Google Sheets -> Gmail1 This comprehensive workflow efficiently collects user data, processes it to extract Date and Time fields, stores the formatted information in Google Sheets and Airtable, and delivers tailored emails to the recipients. Copy these templates to get started : Google Sheet Airtable Links to Node Documentation: n8n Form Trigger Documentation Code Node Documentation Set Node Documentation Airtable Node Documentation Google Sheets Node Documentation Gmail Node Documentation
by David w/ SimpleGrow
Receive Webhook Notification The workflow starts when a webhook receives a POST request from Whapi, notifying that a new participant has joined a WhatsApp group. Filter the Event The workflow checks two conditions: The event is for the correct WhatsApp group (matching the specific group ID). The action type is "add" (meaning a user was added to the group). Send Welcome Message If both conditions are met, the workflow sends a personalized welcome message to the new participant via Whapi. The message explains the group rules and how the user can earn points and participate in weekly raffles. Create Airtable Record After sending the welcome message, the workflow creates a new record in the Airtable database for the new participant. The record includes: The participantβs WhatsApp ID An initial engagement count of 100 points The date of the last interaction (set to today) Result Every new group member is automatically welcomed and registered in your engagement database with starter points, ready to participate in your groupβs activities and rewards. This workflow ensures new users are greeted, informed, and instantly included in your engagement tracking system.
by AlQaisi
Transforming Emails into Podcasts ποΈ Check out this channel for example. The n8n workflow described here aims to revolutionize the way users engage with promotional emails by converting them into entertaining audio podcasts. This innovative project leverages automation through n8n to streamline tasks and enhance user experience. Project Benefit π§π The primary goal of this project is to transform "CATEGORY_PROMOTIONS" emails into engaging audio content. By converting text into speech, users can enjoy promotional material hands-free, making it easier to consume information while on the go or relaxing. The workflow consists of several key steps orchestrated seamlessly to deliver a delightful experience to users. How to Use the Workflow: Gmail trigger Node: Initiates the workflow by fetching "CATEGORY_PROMOTIONS" emails at regular intervals. The Gmail Trigger node in your N8N workflow is set to poll for new emails every minute and is configured to filter emails with the label "CATEGORY_PROMOTIONS" before triggering the workflow. Steps to Use Filters Inside the Gmail Trigger Node: Configure Gmail Trigger Node: Set "Poll Times" to "Every Minute" to check for new emails at regular intervals. Enable the "Simple" toggle if you want to simplify the node interface. Under "Filters", specify the label IDs you want to filter by. In this case, it's set to "CATEGORY_PROMOTIONS". Adjust any additional options as needed. // Configure Gmail Trigger node pollTimes: { item: [ { mode: "everyMinute" } ] }, simple: false, filters: { labelIds: [ "CATEGORY_PROMOTIONS" ] }, options: {} Save and Execute: Save your workflow and execute it to start monitoring your Gmail account for new emails with the specified label filter. By following these steps, your workflow will effectively trigger based on new emails that match the "CATEGORY_PROMOTIONS" label in your Gmail account. Get message content Node: Extracts the email content for processing. Summarization Chain Node: Generates concise summaries using advanced methods for better readability. Delete the unnecessary items Node: Removes irrelevant details from the email content. Text to Free TTS Node: Converts the summary text into speech using Free TTS technology. Convert from base64 to File Node: Transforms the audio data into a compatible file format. Merge Text with Audio Node: Combines the text and audio components seamlessly. Aggregate in same cell Node: Gathers all processed data for finalization. Send Message to Telegram Node: Dispatches the audio message along with a caption to a designated Telegram chat ID. By automating these tasks, the workflow ensures efficient communication and delivers content in a more engaging format, fostering a positive user experience. Configuration Instructions: The configuration of this workflow involves setting up the necessary nodes and establishing connections between them. Each node performs a specific function crucial to the overall operation of the workflow. Additionally, credentials need to be provided for accessing Gmail and OpenAI services to enable seamless data processing and summarization. Utilizing Text-to-Speech API π§ In addition to n8n automation, an external Text-to-Speech API plays a pivotal role in generating audio content from text data. By sending a POST request with JSON data containing the text and voice preferences, users can quickly receive audio files of the converted content. The API offers a straightforward interface for text-to-speech conversion, making it ideal for creating audio clips efficiently. To access this API, simply submit the desired text and voice selection to receive the generated speech audio file. The API endpoint can be accessed at https://tiktok-tts.weilnet.workers.dev/api/generation or through https://tiktokvoicegenerator.com/. In conclusion, this n8n workflow coupled with a Text-to-Speech API presents a powerful solution for transforming emails into captivating podcasts, enhancing user engagement and communication effectiveness. By embracing automation and innovative technologies, this project aims to improve user experience and streamline content delivery processes. πβ¨π
by Dataki
This workflow enriches new Pipedrive organization's data by adding a note to the organization object in Pipedrive. It assumes there is a custom "website" field in your Pipedrive setup, as data will be scraped from this website to generate a note using OpenAI. Then, a notification is sent in Slack. β οΈ Disclaimer This workflow uses a scraping API. Before using it, ensure you comply with the regulations regarding web scraping in your country or state. Important Notes The OpenAI model used is GPT-4o, chosen for its large input token capacity. However, it is not the cheapest model if cost is very important to you. The system prompt in the OpenAI Node generates output with relevant information, but feel free to improve or modify it according to your needs. How It Works Node 1: Pipedrive Trigger - An Organization is Created This is the trigger of the workflow. When an organization object is created in Pipedrive, this node is triggered and retrieves the data. Make sure you have a "website" custom field in Pipedrive (the name of the field in the n8n node will appear as a random ID and not with the Pipedrive custom field name). Node 2: ScrapingBee - Get Organization's Website's Homepage Content This node scrapes the content from the URL of the website associated with the Pipedrive Organization created in Node 1. The workflow uses the ScrapingBee API, but you can use any preferred API or simply the HTTP request node in n8n. Node 3: OpenAI - Message GPT-4o with Scraped Data This node sends HTML-scraped data from the previous node to the OpenAI GPT-4o model. The system prompt instructs the model to extract company data, such as products or services offered and competitors (if known by the model), and format it as HTML for optimal use in a Pipedrive Note. Node 4: Pipedrive - Create a Note with OpenAI Output This node adds a Note to the Organization created in Pipedrive using the OpenAI node output. The Note will include the company description, target market, selling products, and competitors (if GPT-4o was able to determine them). Node 5 & 6: HTML To Markdown & Code - Markdown to Slack Markdown These two nodes format the HTML output to Slack Markdown. The Note created in Pipedrive is in HTML format, as specified by the System Prompt of the OpenAI Node. To send it to Slack, it needs to be converted to Markdown and then to Slack Markdown. Node 7: Slack - Notify This node sends a message in Slack containing the Pipedrive Organization Note created with this workflow.
by Kev
β οΈ Important: This workflow uses the Autype community node and requires a self-hosted n8n instance. Send an email with a document request and optional PDF attachments. The AI assistant can summarize documents, compare multiple PDFs, draft new content, or create documents from scratch with internet research β all output as professionally branded PDFs using Autype. The finished document is delivered back to the sender via email. Who is this for? Consultants, analysts, project managers, and teams who need on-demand document generation. Send an email and get a branded PDF back β whether it's a summary, comparison, draft, or a freshly researched document. Concrete example: Attach 3 PDF proposals and write "Compare these proposals and recommend the best option" β each PDF is OCR'd via Autype Lens, the AI assistant produces a structured comparison with tables, and you receive a branded PDF within minutes. This also works as an additional skill for an AI agent. Instead of an email trigger, connect the workflow to a webhook or chat trigger so an agent can call it when a user asks "create a summary of these documents." What this workflow does On each incoming email, the workflow: Extracts the email subject + body as the document request, and detects PDF attachments Processes each attached PDF sequentially: uploads to Autype, extracts text via Lens OCR Combines all OCR results into a single context Downloads the Autype Extended Markdown syntax reference so the AI knows the output format Passes the request text + all PDF content to an AI Document Assistant with Firecrawl and SerpAPI as research tools The assistant determines the task type (summarize, compare, draft, or create from scratch) and produces the document in Autype Extended Markdown Autype renders the markdown to a branded PDF with company styling (fonts, colors, heading styles, tables, header with logo, footer with page numbers) The PDF is delivered back to the original sender via email Output structure How it works New Email Received β An IMAP Email Trigger monitors your inbox for incoming document requests. The email subject and body become the request text; PDF attachments are automatically detected. Set Company Config β A Set node defines your company name, logo URL, and brand color. Edit these values once. Extract & Split PDFs β A Code node extracts the sender email, combines subject + body as request text, and detects PDF attachments. Each PDF is split into a separate item for loop processing. If no PDFs are attached, a single item with just the text is output. Has PDFs? β An IF node routes the flow: emails with PDF attachments enter the processing loop, text-only emails skip directly to the AI Assistant. Loop Over PDFs β A Split In Batches node processes each PDF sequentially (one at a time to avoid API rate limits). Upload PDF to Autype β Each PDF is uploaded to Autype via the community node (resource: file). Autype Lens OCR β An HTTP Request node triggers Autype Lens OCR on the uploaded file with outputFormat: "md". This uses Generic Auth Type β Header Auth with X-API-Key set to your Autype API key. Cost: 4 credits per page. A dedicated community node for Lens is planned. Wait for OCR β Poll OCR Status β Waits 8 seconds, then polls the job status via HTTP Request (same Header Auth credential). The loop continues to the next PDF after each OCR completes. Extract OCR Text β Extracts the markdown text from each OCR result and stores it with the original filename. Combine All OCR Results β After the loop completes, collects all OCR texts and combines them into a single context string with labeled sections per PDF. Prepare Text Only β For emails without PDFs, passes just the request text forward. Download Markdown Syntax β Fetches the Autype Extended Markdown syntax reference so the AI knows the output format. Merge Context β Combines the request text, all OCR content, and the markdown syntax reference into a single item for the AI Agent. AI Document Assistant β An n8n AI Agent (OpenRouter) with two tools: Firecrawl Scrape β Scrapes specific URLs to extract page content as markdown. SerpAPI β Web search for current information, statistics, and facts. The assistant determines the task type (summarize, compare, draft, or create from scratch). The system prompt limits tool usage to max 5 calls and prioritizes attached PDF content. Prepare Render Payload β Cleans the AI output (strips code fences), generates a filename, and prepares branding variables. Render Branded PDF β Autype Render from Markdown generates the PDF with a full defaults JSON for company styling: Roboto font, heading colors from brand color, styled tables with colored headers, header with company logo, and footer with page numbers. See the defaults schema for all options. Send Report via Email β SMTP sends the PDF as an attachment back to the original email sender. Setup Install the Autype community node (n8n-nodes-autype) via Settings > Community Nodes. Create an Autype API credential with your API key from app.autype.com. See API Keys in Settings. Create a Header Auth credential for the Lens OCR HTTP Request nodes: Go to Credentials > New > Header Auth Name: X-API-Key Value: your Autype API key (same key as step 2) Assign this credential to the "Autype Lens OCR" and "Poll OCR Status" nodes. Create an OpenRouter API credential (or replace the chat model with OpenAI/Anthropic). Create an IMAP credential for the email inbox to monitor. Create an SMTP credential for sending emails. Get a Firecrawl API key from firecrawl.dev and create a Firecrawl credential. Get a SerpAPI key from serpapi.com and create a SerpAPI credential. Import this workflow and assign your credentials to each node. Edit the Set Company Config node: companyName β Your company name (appears in header/footer) companyLogoUrl β URL to your company logo (PNG/JPEG, publicly accessible) brandColor β Hex color for headings and table headers (e.g. #1a5276) Update the Send Report via Email node with your sender email address. Activate the workflow β any new email to the monitored inbox triggers document generation. > Note: This is a community node. It is not maintained by the n8n team. You need a self-hosted n8n instance to use community nodes. Requirements Self-hosted n8n instance (community nodes are not available on n8n Cloud) Autype account with API key (Lens OCR costs 4 credits/page, Render from Markdown costs 1 credit) n8n-nodes-autype community node installed OpenRouter API key (or OpenAI/Anthropic β configurable chat model) IMAP credentials for the monitored inbox SMTP credentials for sending emails Firecrawl API key (free tier: 500 pages/month) SerpAPI key (serpapi.com) How to customize Change AI model:** Replace the OpenRouter Chat Model sub-node with OpenAI, Anthropic Claude, Google Gemini, or any LangChain-compatible chat model. Add more research tools:** Add additional tool nodes for specialized APIs β Google Scholar, SEC filings, PubMed, or internal knowledge bases. Customize styling:** Edit the defaults JSON in the Render Branded PDF node to change fonts, colors, heading styles, table designs, header/footer content, and spacing. See the defaults schema for all available options. Replace email trigger:** Swap the IMAP Email Trigger with a Form Trigger, Webhook, or Chat Trigger to accept input from different sources. Add watermark:** Insert an Autype Watermark step after rendering to stamp "DRAFT" or "CONFIDENTIAL" on every page. Save to cloud storage:** Add a Google Drive, S3, or SharePoint upload step after rendering (before or instead of SMTP). Adjust OCR wait time:** For large PDFs (10+ pages), increase the Wait node from 8 to 15-20 seconds, or add a retry loop that polls until status is COMPLETED. Use Autype community node for Lens:** Once the Autype community node adds Lens OCR support, replace the HTTP Request OCR/poll chain with a single Autype node. Change output format:** Switch from Render from Markdown to Render from JSON for a better manipulation experience
by David Roberts
OpenAI Assistant is a powerful tool, but at the time of writing it doesn't automatically remember past messages from a conversation. This workflow demonstrates how to get around this, by managing the chat history in n8n and passing it to the assistant when required. This makes it possible to use OpenAI Assistant for chatbot use cases. Note that to use this template, you need to be on n8n version 1.28.0 or later.
by Alex Kim
n8n Workflow: Exponential Backoff for Google APIs Overview This n8n workflow implements an Exponential Backoff mechanism to handle retries when interacting with Google APIs. It ensures that failed API requests are retried with increasing delays, up to a specified maximum retry count. This approach helps mitigate transient errors (e.g., rate limits or temporary network issues) while maintaining workflow efficiency. Key Features: Exponential Backoff Logic**: Dynamically increases wait time between retries based on the retry count. Error Handling**: Stops the workflow and raises an error after a specified number of retries. Dynamic Waiting**: Waits for a calculated duration before each retry. Scalable Design**: Modular nodes for easy debugging and customization. Workflow Details Nodes in the Workflow: Trigger (When clicking "Test Workflow"): Manually starts the workflow for testing. Loop Over Items: Iterates over multiple input items to process Google API requests row by row. Google API Node (Example: Update Sheet): Sends a request to a Google API endpoint (e.g., updating a row in Google Sheets). On success: Moves to the next item in the loop. On error: Passes the error to the Exponential Backoff node. Exponential Backoff: Calculates the delay for the next retry based on the retry count. Logic: const retryCount = $json["retryCount"] || 0; const maxRetries = 5; const initialDelay = 1; // in seconds if (retryCount < maxRetries) { const currentDelayInSeconds = initialDelay * Math.pow(2, retryCount); return { json: { retryCount: retryCount + 1, waitTimeInSeconds: currentDelayInSeconds, status: 'retrying', } }; } else { return { json: { error: 'Max retries exceeded', retryCount: retryCount, status: 'failed' } }; } Wait: Dynamically waits for the waitTimeInSeconds value calculated in the Exponential Backoff node. Configuration: Resume: After Time Interval Wait Amount: {{ $json["waitTimeInSeconds"] }} Unit: Seconds Check Max Retries: Evaluates whether the retry count has exceeded the maximum limit. Routes the workflow: True: Passes to the Stop and Error node. False: Loops back to the Google API node for retry. Stop and Error: Stops the workflow and logs the error when the maximum retry count is reached. Parameters Configurable Settings: Max Retries: Defined in the Exponential Backoff node (const maxRetries = 5). Adjust this value based on your requirements. Initial Delay: The starting wait time for retries, defined as 1 second. Google API Configuration: Ensure your Google API node is properly authenticated and configured with the desired endpoint and parameters. How to Use Import the Workflow: Copy the workflow JSON and import it into your n8n instance. Configure Google API Node: Set up the Google API node with your credentials and target API endpoint (e.g., Google Sheets, Gmail, etc.). Test the Workflow: Manually trigger the workflow and observe the retry behavior in case of errors. Monitor Logs: Use the console logs in the Exponential Backoff node to debug retry timings and status. Example Scenarios Scenario 1: Successful Execution The Google API processes all requests without errors. Workflow completes without triggering the retry logic. Scenario 2: Transient API Errors The Google API returns an error (e.g., 429 Too Many Requests). The workflow retries the request with increasing wait times. Scenario 3: Maximum Retries Exceeded The workflow reaches the maximum retry count (e.g., 5 retries). An error is raised, and the workflow stops. Considerations Jitter: This workflow does not implement jitter (randomized delay) since it's not required for low-volume use cases. If needed, jitter can be added to the exponential backoff calculation. Retry Storms: If multiple workflows run simultaneously, ensure your API quotas can handle potential retries. Error Handling Beyond Max Retries: Customize the Stop and Error node to notify stakeholders or log errors in a centralized system. Customization Options Adjust the maximum retry limit and delay calculation to suit your use case. Add additional logic to handle specific error codes differently. Extend the workflow to notify stakeholders when an error occurs (e.g., via Slack or email). Troubleshooting Retry Not Triggering**: Ensure the retryCount variable is passed correctly between nodes. Confirm that the error output from the Google API node flows to the Exponential Backoff node. Incorrect Wait Time**: Verify the Wait node is referencing the correct field for waitTimeInSeconds. Request for Feedback We are always looking to improve this workflow. If you have suggestions, improvements, or ideas for additional features, please feel free to share them. Your feedback helps us refine and enhance this solution!