by Emad
This workflow automatically sends you a list of your daily meetings every morning via a Telegram bot. Use Cases: This workflow is useful for anyone who wants to be automatically informed of their daily meetings, especially for busy professionals, students, and anyone with a hectic schedule. Setup: Google Calendar connected to n8n A Telegram bot created and connected to n8n Your Telegram user ID specified Notes: You need to replace the placeholder in the Telegram node with your actual Telegram user ID. You can customize the formatting of the Telegram message in the JavaScript Code node.
by Ankur Pata
β¨ What It Does Mello is a Claude-powered Slack assistant that helps you stay on top of unread messages across all your channels. It: Summarizes conversations contextually using Claude AI. Generates reply suggestions and sends them as private (ephemeral) Slack messages. Lets you respond instantly with one-click AI-suggested replies. Perfect for busy teams, founders, and anyone looking to reduce Slack noise and save hours each week. π§ Setup Instructions Create a Slack App Go to Slack API β Your Apps Click Create New App and set it up for your workspace Under OAuth & Permissions, add: Bot Token Scopes: commands, chat:write, channels:history, users:read User Token Scopes: channels:history, chat:write Enable Interactivity, and point the Request URL to your n8n webhook (e.g. /slash-summarize) Add Claude API Get an API key from Claude (Anthropic) In n8n, set up the Claude API credential (or switch to OpenAI) Import This Workflow Go to your n8n instance, click Import, and paste this template Update any placeholders (Slack app, Claude key, webhook URLs) Follow the inline sticky notes for guidance Test It Type /summarize in any Slack channel Mello will fetch unread messages, summarize them, and show reply buttons in a private message β± Setup time: ~10 minutes π Workflow Highlights Slash command trigger (/summarize) Slack API integration to fetch messages Claude AI for contextual summaries Reply suggestions with smart buttons Private Slack delivery (ephemeral messages) Designed to be easily extended (e.g. add support for OpenAI, custom storage) π Note This is a lite preview of the full Mello workflow. β The full version includes: Slack reply buttons with thread context Full OAuth flow with token storage MongoDB integration Custom Claude/OpenAI configuration Hosted version with onboarding, branding & support π‘ Want access to the complete version? π© Email nina@baloon.dev
by Aditya Gaur
Who is this template for? This template is for teams and administrators who use n8n to monitor Elastic alerts and want to receive automated email notifications when an alert is triggered. It leverages Microsoft Graph API to send emails and provides an efficient way to notify users about alerts directly in their inbox. How it works? The template connects to the Elastic API to retrieve alert data. When a new alert is detected, the workflow processes the alert content and sends an email notification via Microsoft Graph API. The email includes alert details such as the alert name, timestamp, severity, and a summary of the message, allowing for quick action or review. Setup steps Step 1: Set up OAuth2 Credentials in n8n for Microsoft Graph API with Mail.Send permission. Step 2: Configure your Elastic API endpoint in the HTTP Request node to retrieve alerts. Step 3: Modify the email recipients in the template to specify who will receive the alert notifications. Step 4: Customize the email format, if necessary, to include additional alert details or adjust the message.
by Vitali
Template Description This n8n workflow template allows you to create a masked email address using the Fastmail API, triggered by a webhook. This is especially useful for generating disposable email addresses for privacy-conscious users or for testing purposes. Workflow Details: Webhook Trigger: The workflow is initiated by sending a POST request to a specific webhook. You can include state and description in your request body to customize the masked email's state and description. Session Retrieval: The workflow makes an HTTP request to the Fastmail API to retrieve session information. It uses this data to authenticate further requests. Create Masked Email: Using the retrieved session data, the workflow sends a POST request to Fastmail's JMAP API to create a masked email. It uses the provided state and description from the webhook payload. Prepare Output: Once the masked email is successfully created, the workflow extracts the email address and attaches the description for further processing. Respond to Webhook: Finally, the workflow responds to the original POST request with the newly created masked email and its description. Requirements: Fastmail API Access**: You will need valid API credentials for Fastmail configured with HTTP Header Authentication. Authorization Setup**: Optionally set up authorization if your webhook is exposed to the internet to prevent misuse. Custom Webhook Request**: Use a tool like curl or create a shortcut on macOS/iOS to send the POST request to the webhook with the necessary JSON payload, like so: curl -X POST -H 'Content-Type: application/json' https://your-n8n-instance/webhook/87f9abd1-2c9b-4d1f-8c7f-2261f4698c3c -d '{"state": "pending", "description": "my mega fancy masked email"}' This template simplifies the process of integrating masked email functionality into your projects or workflows and can be extended for various use cases. Feel free to use the companion shortcut I've also created. Please update the authorization header in the shortcut if needed. https://www.icloud.com/shortcuts/ac249b50eab34c04acd9fb522f9f7068
by Artur
Overview This automated workflow fetches Upwork job postings using Apify, removes duplicate job listings via MongoDB, and sends new job opportunities to Slack. Key Features: Automated job retrieval** from Upwork via Apify API Duplicate filtering** using MongoDB to store only unique jobs Slack notifications** for new job postings Runs every 20 minutes** during working hours (9 AM - 5 PM) This workflow requires an active Apify subscription to function, as it uses the Apify Upwork API to fetch job listings. Who is This For? This workflow is ideal for: Freelancers looking to track Upwork jobs in real time Recruiters automating job collection for analytics Developers who want to integrate Upwork job data into their applications What Problem Does This Solve? Manually checking Upwork for jobs is time-consuming and inefficient. This workflow: Automates job discovery based on your keywords Filters out duplicate listings, ensuring only new jobs are stored Notifies you on Slack when new jobs appear How the Workflow Works 1. Schedule Trigger (Every 20 Minutes) Triggers the workflow at 20-minute intervals Ensures job searches are only executed during working hours (9 AM - 5 PM) 2. Query Upwork for Jobs Uses Apify API to scrape Upwork job posts for specific keywords (e.g., "n8n", "Python") 3. Find Existing Jobs in MongoDB Searches MongoDB to check if a job (based on title and budget) already exists 4. Filter Out Duplicate Jobs The Merge Node compares Upwork jobs with MongoDB data The IF Node filters out jobs that are already stored in the database 5. Save Only New Jobs in MongoDB The Insert Node adds only new job listings to the MongoDB collection 6. Send a Slack Notification If a new job is found, a Slack message is sent with job details Setup Guide Required API Keys Upwork Scraper (Apify Token) β Get your token from Apify MongoDB Credentials β Set up MongoDB in n8n using your connection string Slack API Token β Connect Slack to n8n and set the channel ID (default: #general) Configuration Steps Modify search keywords in the 'Assign Parameters' node (startUrls) Adjust the Working Hours in the 'If Working Hours' node Set your Slack channel in the Slack node Ensure MongoDB is connected properly Adjust the 'If Working Hours' node to match your timezone and hours, or remove it altogether to receive notifications and updates constantly. How to Customize the Workflow Change keywords: update the startUrls in the 'Assign Parameters' node to track different job categories Change 'If Working Hours': Modify conditions in the IF Node to filter times based on your needs Modify Slack Notifications: Adjust the Slack message format to include additional job details Why Use This Workflow? Automated job tracking without manual searches Prevents duplicate entries in MongoDB Instant Slack notifications for new job opportunities Customizable β adapt the workflow to different job categories Next Steps Run the workflow and test with a small set of keywords Expand job categories for better coverage Enhance notifications by integrating Telegram, Email, or a dashboard This workflow ensures real-time job tracking, prevents duplicates, and keeps you updated effortlessly.
by felipe biava cataneo
What this template does This template uses GROQ LLAVA V1.5 7B API that offers fast inference for multimodal models with vision capabilities for understanding and interpreting visual data from images. . The users send a image and get a description of the image from the model. Setup Open the Telegram app and search for the BotFather user (@BotFather) Start a chat with the BotFather Type /newbot to create a new bot Follow the prompts to name your bot and get a unique API token Save your access token and username Once you set your bot, you can send the image, and get the descriptions.
by Agentick AI
This n8n workflow automatically scrapes the latest posts from a specified Reddit subreddit every day at 9 AM and sends a neatly formatted HTML email summary to your inbox. It highlights new community posts, including post details like title, author, flair, upvotes, comments, and a brief preview β making it ideal for content curators, community managers, or Reddit enthusiasts who want daily updates. How It Works Trigger: The schedule node runs the workflow once every 24 hours at 9:00 AM. Reddit Scrape: A request is made to the desired subreddit (defined in the HTTP Request node) to pull post data. Filter & Format: JavaScript code filters posts created in the last 24 hours and transforms the data into structured summaries. Email Composition: A dynamic HTML email is generated summarizing the post details. If no new posts are found, a fallback message is displayed. Email Delivery: Gmail node sends the email with subject, content, and timestamp. Use Cases β Stay informed about the latest subreddit activity. β Automate daily newsletters for Reddit topics. β Monitor niche communities for engagement trends. Requirements Reddit subreddit link (set in the HTTP Request node). Gmail account with OAuth2 credentials set up in n8n. User-Agent string customized for your Reddit scraping. Adjust schedule as per your preferred timezone. Google Sheet Setup (Not required for this workflow) No sheet integration is involved here. Customizing the Workflow You can personalize this workflow by: Replacing the User-Agent value with a meaningful identifier to avoid Reddit rate-limiting. Updating the subreddit URL in the HTTP Request node. Changing the Gmail recipient address in the Send Gmail node. Tweaking the HTML email styling in the Prepare Email Content node. Adjusting schedule time/frequency in the Trigger node.
by ist00dent
This n8n template empowers you to instantly fetch a list of public holidays for any given year and country using the Nager.Date API. This is incredibly useful for scheduling, planning, or integrating holiday data into various business and personal automation workflows. π§ How it works Receive Holiday Request Webhook: This node acts as the entry point, listening for incoming POST requests. It expects a JSON body containing the year (e.g., 2025) and countryCode (e.g., US for United States, PH for Philippines, DE for Germany) for which you want to retrieve public holidays. Get Public Holidays: This node makes an HTTP GET request to the Nager.Date API (date.nager.at). It dynamically uses the year and countryCode from your webhook request to query the API. The API responds with a JSON array, where each object represents a public holiday with details like its date, name, and type. Respond with Holiday Data: This node sends the full list of public holidays received from Nager.Date back to the service that initiated the webhook. π€ Who is it for? This workflow is ideal for: Businesses with International Operations: Automatically check holidays for different country branches to adjust production schedules, customer service hours, or delivery estimates. HR & Payroll Departments: Accurately calculate workdays, plan leave schedules, or process payroll taking public holidays into account. Event Planners: Avoid scheduling events on public holidays, which could impact attendance or venue availability. Travel Agencies: Inform clients about holidays in their destination country that might affect local business hours or attractions. Content & Social Media Schedulers: Plan content around national holidays to maximize engagement or avoid insensitive postings. Personal Productivity & Travel Planning: Integrate holiday data into your calendar or task management tools to plan trips or personal time off more effectively. Developers: Easily integrate a reliable source of public holiday data into custom applications, dashboards, or internal tools without managing complex datasets. π Data Structure When you trigger the webhook, send a POST request with a JSON body structured as follows: { "year": 2025, "countryCode": "PH" // Example: "US", "DE", "GB", etc. } You can find a comprehensive list of supported country codes on the Nager.Date API documentation: https://www.nager.at/Country The workflow will return a JSON array, where each element is a holiday object, like this example for a single holiday: [ { "date": "2025-01-01", "localName": "New Year's Day", "name": "New Year's Day", "countryCode": "PH", "fixed": true, "global": true, "counties": null, "launchYear": null, "types": [ "Public" ] } // ... more holiday objects ] βοΈ Setup Instructions Import Workflow: In your n8n editor, click "Import from JSON" and paste the provided workflow JSON. Configure Webhook Path: Double-click the Receive Holiday Request Webhook node. In the 'Path' field, set a unique and descriptive path (e.g., /public-holidays). Activate Workflow: Save and activate the workflow. π Tips This workflow is a foundation for many powerful automations: Conditional Branching for Specific Holidays: Add an IF node after "Get Public Holidays" to check for a specific holiday (e.g., "Christmas Day"). You can then trigger different actions (e.g., send a reminder, adjust a schedule) only for that particular holiday. Filtering and Aggregating Data: Use a Filter node to only keep holidays of a certain type (e.g., "Public"). Use a Code or Function node to count the number of public holidays, or extract just the names and dates into a simpler list. Storing Holiday Data: Google Sheets/Airtable: Automatically append new holidays to a spreadsheet for easy reference or further analysis. Database: Store holiday data in a database (like PostgreSQL or MySQL) to build a custom holiday calendar application. Scheduling and Reminders: Connect this workflow to a Cron or Schedule node to run periodically (e.g., once a year at the start of the year). Use the retrieved holiday dates to set up reminders in your calendar (Google Calendar node) or send notifications (Slack, Email, SMS) a few days before an upcoming holiday. Integrate with Business Logic: Employee Leave Management: Cross-reference employee leave requests with public holidays to ensure accuracy. Automated Messages: Schedule automated "Happy Holiday" messages to customers or employees. E-commerce Shipping: Adjust estimated shipping times based on upcoming non-working days. API Key (Not needed for Nager.Date free tier): The Nager.Date API used here does not require an API key for basic public holiday lookups, which makes this template very easy to use out-of-the-box.
by Open Paws
Whoβs it for π― This workflow is ideal for outreach specialists, fundraisers, campaigners, and professionals who want to build authentic connections by researching prospects deeply and strategically. It helps users understand prospectsβ backgrounds, interests, and mutual connections to craft effective outreach. How it works / What it does βοΈ Using the Multi-tool Research Agent subworkflow, it analyzes both the prospectorβs and prospectβs profiles, social media, and online presence. The workflow verifies identities, uncovers key connection points, and generates a comprehensive HTML report with actionable insights, conversation starters, and suggested engagement tactics. How to set up π οΈ Import this workflow and the Multi-tool Research Agent subworkflow. Configure required API credentials. Provide inputs: prospector and prospect names, social media URLs, and outreach goal. Test the workflow to ensure accurate research and report generation. Requirements π n8n instance with internet access Valid API keys Multi-tool Research Agent subworkflow installed and linked Optional email node for sending reports directly How to customize π§ Update input parameters to suit your outreach use case. Modify research prompts in the subworkflow for tone or focus. Customize the HTML report design for branding or format preferences. Attach an email node to send reports automatically or route output as needed. Use this workflow to power personalized, strategic outreach with data-driven insights.
by Oneclick AI Squad
An AI-powered email marketing automation workflow that generates personalized marketing emails using data from Google Sheets and delivers them directly to clients. This workflow combines the power of AI content generation with spreadsheet-based campaign management for seamless email marketing automation. What's the Goal? Automatically pull marketing offer details from Google Sheets (Sheet 1) Fetch client information from Google Sheets (Sheet 2) Use AI to generate compelling, personalized marketing content Format emails with professional structure and personalization Send targeted marketing emails directly to clients Enable scalable email marketing campaigns with minimal manual effort By the end, you'll have a fully automated email marketing system that creates and sends personalized campaigns based on your spreadsheet data. Why Does It Matter? Manual email marketing is labor-intensive and lacks personalization at scale. Here's why this workflow is a game changer: Zero Manual Drafting**: AI generates unique content for each recipient Data-Driven Personalization**: Leverages spreadsheet data for targeted messaging Scalable Campaigns**: Handle hundreds of clients with a single workflow execution Consistent Quality**: AI ensures professional, engaging content every time Time Efficiency**: Transform hours of work into minutes of automation Cost-Effective**: Reduce marketing team workload while increasing output Think of it as your intelligent marketing assistant that creates personalized campaigns at enterprise scale. How It Works Here's the step-by-step process behind the automation: Step 1: Track Offer Updates Node**: Track Offer Sheet Updates (Sheet 1) Function**: Monitor Google Sheets for new marketing offers or updates Trigger**: Automatically activates when new data is added to Sheet 1 Step 2: Generate Marketing Content Node**: Generate Marketing Content with AI Function**: Process offer details through AI model (Llama 3.2) Process**: Creates compelling marketing copy based on offer parameters Step 3: Fetch Client Information Node**: Fetch Client List (Sheet 2) Function**: Retrieve client names and email addresses from Sheet 2 Data**: Pulls client_name and client_email for personalization Step 4: Content Personalization Node**: Format Personalized Email Function**: Combine AI-generated content with client-specific data Output**: Creates personalized email for each recipient Step 5: Email Delivery Node**: Send Marketing Email to Client Function**: Deliver personalized emails directly to client inboxes Method**: Uses Gmail integration for professional delivery Google Sheets Structure Sheet 1: Marketing Offer Details | Column | Description | Example | |--------|-------------|---------| | title | Campaign/offer name | "Summer Sale 2024" | | discount | Discount percentage or amount | "25% OFF" | | validity | Offer expiration date | "Valid until July 31st" | | products_included | Items covered by offer | "All summer collection" | | original_price | Pre-discount pricing | "$199.99" | | discounted_price | Final pricing | "$149.99" | | cta | Call-to-action text | "Shop Now" | | bonus | Additional incentives | "Free shipping included" | Sheet 2: Client Information | Column | Description | Example | |--------|-------------|---------| | client_name | Customer's full name | "John Smith" | | client_email | Customer's email address | "john.smith@email.com" | How to Use the Workflow Prerequisites Google Sheets Setup: Create two sheets with the required column structure n8n Account: Access to n8n workflow platform Gmail API: Gmail account with API access configured AI Model Access: Llama 3.2 API credentials Importing the Workflow in n8n Step 1: Obtain the Workflow JSON Download the workflow file or copy the JSON code Ensure you have the complete workflow configuration Step 2: Access n8n Workflow Editor Log in to your n8n instance (Cloud or self-hosted) Navigate to the Workflows section Click "Add Workflow" to create a new workflow Step 3: Import the Workflow Option A: Import from Clipboard Click the three dots (β―) in the top-right corner Select "Import from Clipboard" Paste the JSON code into the text box Click "Import" to load the workflow Option B: Import from File Click the three dots (β―) in the top-right corner Select "Import from File" Choose the .json file from your computer Click "Open" to import the workflow Configuration Setup Google Sheets Integration Authenticate Google Sheets: Connect your Google account in n8n Configure Sheet 1: Set spreadsheet ID and range for marketing offers Configure Sheet 2: Set spreadsheet ID and range for client information AI Model Configuration Set API Credentials: Configure Llama 3.2 API key and endpoint Customize Prompts: Adjust AI prompts for your brand voice and style Set Content Parameters: Define content length, tone, and structure Gmail Integration Gmail API Setup: Enable Gmail API in Google Cloud Console OAuth Configuration: Set up OAuth credentials for email sending Sender Configuration: Configure sender name and email address Content Customization Email Templates: Customize email structure and branding Personalization Fields: Map spreadsheet columns to email variables Brand Guidelines: Set company colors, fonts, and messaging tone Workflow Execution Manual Execution Click "Execute Workflow" in the n8n interface Monitor execution progress through each node Review generated content and delivery status Automated Execution Set up triggers based on sheet updates Configure scheduling for regular campaign runs Enable webhook triggers for real-time processing Best Practices Data Management Keep spreadsheet data clean and formatted consistently Regular validation of email addresses in Sheet 2 Update offer details promptly in Sheet 1 Content Quality Review AI-generated content periodically Adjust prompts based on campaign performance Maintain consistent brand voice across campaigns Deliverability Monitor email bounce rates and engagement metrics Maintain clean email lists with valid addresses Follow email marketing best practices and regulations Performance Optimization Batch process large client lists for efficiency Monitor workflow execution times Implement error handling and retry mechanisms Troubleshooting Common Issues Authentication Errors**: Verify API credentials and permissions Sheet Access**: Ensure proper sharing permissions for Google Sheets Email Delivery**: Check Gmail API quotas and sending limits AI Processing**: Monitor API rate limits and response times Error Handling Implement retry logic for failed operations Set up notification systems for workflow failures Maintain backup data sources for critical campaigns Security Considerations Use environment variables for API keys and credentials Implement proper access controls for sensitive data Regular security audits of connected services Compliance with data protection regulations (GDPR, CAN-SPAM) Conclusion This Smart Email Marketing Generator transforms your marketing campaigns from manual, time-consuming tasks into automated, intelligent processes. By leveraging AI and spreadsheet data, you can create personalized, engaging campaigns that scale with your business needs while maintaining professional quality and consistency. The workflow represents a significant advancement in marketing automation, combining the accessibility of spreadsheet-based data management with the power of AI-driven content generation and automated delivery systems.
by Khaisa Studio
This workflow contains community nodes that are only compatible with the self-hosted version of n8n. β What Problem Does It Solve? Manual transcription and action planning from meeting notes is often error-prone, time-consuming, and inconsistent. Important tasks, decisions, or deadlines can be overlooked or delayed. This workflow solves these pain points by automatically analyzing notes using AI and turning them into actionable, structured data. It drastically reduces follow-up delays, miscommunications, and administrative effort, letting teams focus on execution instead. π‘ Why Use Google Meet Automation? Save Hours of Manual Work:** Automatically transform raw meeting notes into structured tasks and emails without lifting a finger. Ensure Accurate Follow-up:** Never miss important action items or decisions buried in text; everything is extracted and assigned clearly. Improve Team Collaboration:** Instantly distribute meeting summaries and next steps to attendees, keeping everyone aligned. Leverage Advanced AI:** Utilize Google Geminiβs powerful natural language processing tailored specifically for meetings. Fully End-to-End Automated:** From receiving notes to task creation and email dispatch β your post-meeting workflow is completely hands-free. β‘ Who Is This For? Project Managers:** Streamline task delegation and keep project timelines on track. Team Leads:** Quickly communicate key takeaways and follow-ups to team members. Sales and Account Teams:** Document client meetings efficiently and automate follow-up outreach. Remote Teams:** Ensure clarity and continuity after virtual meetings. Executives:** Get concise summaries and important decision logs automatically. π§ What This Workflow Does β± Trigger: Activated via a POST webhook receiving meeting notes, title, attendees, date, and duration. π Step 2: Validates inputs; if missing required fields, sends an error response. π Step 3: Extracts and formats meeting data into structured variables for processing. π€ Step 4: Sends meeting notes to Google Gemini AI for advanced analysis to identify action items, decisions, summaries, follow-ups, and dates. π Step 5: Splits AI responses to create Google Tasks from action items and send personalized follow-up emails via Gmail. π Step 6: Generates a Google Docs meeting summary document and finally returns a success response with all processed results. π Setup Instructions Import the provided Google Meet Automation.json file into your n8n instance. use Payload example Set up credentials for: Google OAuth2 API (Google Tasks, Google Docs) Gmail OAuth2 API for sending emails Google Palm API (for Google Gemini AI access) Customize workflow parameters: Webhook URL and access permissions Google Tasks project or folders if applicable Email templates if desired (subject line, branding) Update any API endpoints or credential references to match your account setup. Thoroughly test with sample meeting note payloads to ensure smooth execution. π§© Pre-Requirements Active n8n instance (Cloud or Self-hosted) Google Cloud Platform project with: Google Tasks API enabled Google Docs API enabled Gmail API enabled Google Palm API access (Google Gemini AI) Valid OAuth2 credentials configured in n8n for above services API quota and permissions for sending emails, creating docs, and tasks π οΈ Customize It Further Integrate with calendar apps (Google Calendar, Outlook) to auto-schedule next meetings. Add Slack or Microsoft Teams notifications for real-time alerts. Extend AI prompt for deeper insights like sentiment analysis or risk flags. Customize email templates with branding, signatures, or attachments. Connect task outputs with project management tools like Asana, Trello, or Jira. π Support Made by: khaisa Studio Tag: automation, google meet, meeting notes, AI, google tasks, gmail, google docs Category: Productivity Need a custom? Contact Us
by Keith Rumjahn
Case Study π§ Want to collect email subscribers without paying expensive monthly fees? π° This workflow creates a free email collection system with built-in email verification to ensure you only collect legitimate email addresses! β¨ Learn more: πΊ Watch the tutorial: π Read the detailed guide What this workflow does π οΈ Creates a customizable email collection form that can be embedded on your website π Verifies email addresses using Hunter.io to filter out fake or invalid emails β Stores verified email addresses in SendGrid for your email marketing needs π Completely free solution (except for Hunter.io's 50 free monthly credits) π Setup βοΈ Set up a free Hunter.io account for email verification Configure your SendGrid account credentials Customize the email collection form fields Get the embedded form code for your website How to adjust it to your needs π§ Add additional form fields beyond just email collection Customize the form's appearance and labels Modify the verification logic based on your requirements Connect to different email marketing platforms instead of SendGrid Add additional automation steps after email verification Benefits π No monthly subscription fees for email collection πΈ Built-in email verification prevents fake signups π‘οΈ Scalable solution that won't lock you into expensive plans π Clean email list with only verified addresses β¨ Simple setup and customization π― This workflow is perfect for bloggers, small businesses, and anyone looking to build an email list without getting locked into expensive email marketing platforms as their subscriber count grows! π Built by rumjahn