Back to Catalog
Nima Salimi

Nima Salimi

- Marketing Automation Specialist - Marketing Workflow Architect - Optimizing Marketing Processes

Total Views2,468
Templates7

Templates by Nima Salimi

Automate email marketing campaigns with NocoDB & Brevo

Description๐Ÿ” This n8n workflow is a complete marketing automation system that connects to your CDP (Customer Data Platform), selects which flows to send, and delivers personalized emails using Brevo. It's modular and extensible โ€” you can also add SMS, push notifications, Telegram messages, or other channels. To build a full marketing automation system, you need four key components: Workflow Automation โ€“ using n8n (this workflow) CDP โ€“ store and manage user data (e.g., NocoDB, Metabase, Power BI, etc.) Database โ€“ track transactions, templates, and send statuses (e.g., NocoDB) BI / Analytics โ€“ monitor performance by flows, journeys, and sent events This workflow represents the Workflow Automation layer. You can connect it to your own data stack or use the included example databases (cdp-ecrm, n8n-templates-ecrm, and n8n-transaction-ecrm) to get started quickly. ๐Ÿ‘ค Whoโ€™s it for? Growth & CRM teams managing user engagement flows Ecommerce marketers running time-sensitive email journeys Marketing automation pros using low-code CRM stacks Data teams building custom campaign triggers from CDPs โœ… Features ๐Ÿ” Two modular flows: "Insert user_id" and "Sending Email" ๐Ÿง  Select flow using flow_id from templates in NocoDB โœ๏ธ Insert user data into n8n-transaction-ecrm with processing status ๐Ÿ” Filter duplicate users by user_id to avoid over-sending ๐Ÿ“ง Validate email fields and flag disposables ๐Ÿ“จ Send personalized emails using Brevo template parameters ๐Ÿ“Š Track delivery with sentresult, sentat, and status updates ๐Ÿ•’ Runs every 30 minutes via schedule trigger ๐Ÿ›  How to Use Set your flow In the Setup Flow node, change the flow_id to match a row in your n8n-templates-ecrm table. Prepare your tables in NocoDB cdp-ecrm: contains users (userid, email, firstname, phone_number) n8n-templates-ecrm: contains flows with metadata n8n-transaction-ecrm: stores and updates user send status Configure credentials NocoDB API Token Brevo (Sendinblue) API Key Trigger the flows Run โ€œInsert user_idโ€ manually or on a schedule to prepare users โ€œSending Emailโ€ runs automatically every 30 minutes ๐Ÿ“Œ Notes Disposable email domains are filtered using regex Status: 0-processing โ†’ just inserted 1-sending โ†’ ready to send 2-sent โ†’ email sent successfully 3-no-email โ†’ missing email address 4-disposal-email โ†’ disposable or banned email Easily duplicate the "Insert user_id" flow to add more campaigns

Nima SalimiBy Nima Salimi
1061

Automate SEO keyword & SERP analysis with DataForSEO and Google Sheets

๐Ÿง  Automated SEO Keyword and SERP Analysis with DataForSEO for High-Converting Content | n8n workflow template Overview ๐ŸŒ ----------------- This is a complete SEO automation workflow built for professionals who want to manage all their DataForSEO operations inside n8n โ€” no coding required โš™๏ธ You can easily choose your operator (action), such as: ๐Ÿ” SERP Analysis โ€“ Get ranking data for specific keywords ๐Ÿ“ˆ Keyword Data โ€“ Retrieve search volume, CPC, and trends ๐Ÿง  Competitor Research โ€“ Analyze which domains dominate target queries Once the workflow runs, it automatically creates a new Google Sheet ๐Ÿ“Š (if it doesnโ€™t exist) and appends the results โ€” including metrics like keyword, rank, domain, and date โ€” to keep a growing historical record of your SEO data ๐Ÿ“… ๐Ÿ’ก Ideal for SEO specialists, agencies, and growth teams who want a single automation to handle all keyword and ranking data pipelines using DataForSEO + Google Sheets + n8n. --- Examples related keyword sheet Each operator (SERP, Keywords Data, Competitors) automatically creates a separate Google Sheet ๐Ÿ“Š --- ๐Ÿ‘ค Whoโ€™s it for? ๐Ÿงฉ SEO Specialists who need accurate keyword & SERP insights daily โœ๏ธ Content Marketers planning new blog posts or landing pages ๐Ÿ“Š Digital Marketing Teams tracking top-performing keywords and competitors ๐Ÿ’ผ Agencies managing multiple websites or niches with automated reports ๐Ÿง  AI-Driven SEOs building GPT-powered content strategies using live ranking data --- โš™๏ธ How It Works Trigger & Input Setup Start the workflow manually or schedule it to run daily / weekly ๐Ÿ•’ Import a keyword list from Google Sheets ๐Ÿ“„, NocoDB, or an internal database Keyword Data Retrieval (DataForSEO Keyword API) Sends requests to the keywords_data endpoint of DataForSEO Gathers search volume, CPC, competition level, and trend data Identifies the most promising keywords for conversion-focused content SERP Analysis (DataForSEO SERP API) Fetches the top organic results for each keyword Extracts domains, titles, snippets, and ranking positions Highlights which competitors dominate the search landscape Data Enrichment & Filtering Uses Code nodes to clean and normalize the DataForSEO JSON output Filters out low-intent or irrelevant keywords automatically Optionally integrates OpenAI or GPT nodes for insight generation โœจ Store & Visualize Saves results into Google Sheets, Airtable, or NocoDB for tracking Each run adds fresh data, building a performance history over time ๐Ÿ“ˆ Optional AI Layer (Advanced) Use OpenAI Chat Model to summarize SERP insights: > โ€œTop 3 competitors for cloud storage pricing focus on cost transparency โ€” recommend including pricing tables.โ€ Automatically generate content briefs or keyword clusters --- ๐Ÿงฉ Workflow Highlights โšก Multiple DataForSEO Endpoints Supported (keywords_data, serp, competitors) ๐Ÿ” Automated Scheduling for daily / weekly updates ๐Ÿง  Data Normalization for clean, structured SEO metrics ๐Ÿ“Š Easy Export to Google Sheets or NocoDB ๐Ÿงฉ Expandable Design โ€” integrate GPT, Google Search Console, or Analytics ๐ŸŒŽ Multi-Language & Multi-Location Support via languagecode and locationcode --- ๐Ÿ“Š Example Output (Google Sheets) | keyword | rank | domain | volume | cpc | competition | date | |----------|------|----------------|---------|---------|---------------|------------| | cloud hosting | 1 | cloud.google.com | 18,100 | $2.40 | 0.62 | 2025-10-25 | | cloud server | 3 | aws.amazon.com | 12,900 | $3.10 | 0.75 | 2025-10-25 | | hybrid cloud | 5 | vmware.com | 9,800 | $2.90 | 0.58 | 2025-10-25 | Each run appends new keyword metrics for trend and performance tracking. --- ๐Ÿ’ก Pro Tips ๐Ÿ” Combine this workflow with Google Search Console for even richer insights โš™๏ธ Adjust the locationcode and languagecode for local SEO targeting ๐Ÿ’ฌ Add a Slack or Gmail alert to receive weekly keyword opportunity reports ๐Ÿค– Extend with OpenAI to automatically create content briefs or topic clusters --- ๐Ÿ“š Integrations Used ๐Ÿงญ DataForSEO API โ€“ Keyword & SERP data source ๐Ÿ“„ Google Sheets / Airtable / NocoDB โ€“ Storage and visualization ๐Ÿค– OpenAI Chat Model (optional) โ€“ Insight generation and summarization โš™๏ธ Code Nodes โ€“ JSON parsing and custom data processing --- โœ… Features ๐ŸŒŽ Choose from 100+ Locations Select your target country, region, or city using the location_code parameter. Perfect for local SEO tracking or multi-market analysis. ๐Ÿ—ฃ๏ธ Choose from 50+ Languages Define the language_code to get accurate, language-specific keyword and SERP data. Supports English (en), Spanish (es), French (fr), German (de), and more. ๐Ÿ“Š Auto-Creates Google Sheets for You No need to manually set up a spreadsheet โ€” the workflow automatically creates a new Google Sheet (if it doesnโ€™t exist) and structures it with the right columns (query, rank, domain, date, etc.). ๐Ÿ” Append New Data Automatically Every run adds fresh SEO metrics to your sheet, building a continuous daily or weekly ranking history. โš™๏ธ Flexible Operator Selection Choose which DataForSEO operator (action) you want to run: keywords_data, serp, or competitors. Each operator retrieves a different type of SEO insight. ๐Ÿง  Fully Expandable Add Slack alerts, Airtable sync, or AI summaries using OpenAI โ€” all within the same workflow. --- โš™๏ธ How to Set Up ๐Ÿ”‘ Add DataForSEO Credentials Get your API login from dataforseo.com Add it under HTTP Request โ†’ Basic Auth in n8n ๐Ÿ“„ Connect Google Sheets Authorize your Google account The workflow will auto-create the sheet if it doesnโ€™t exist ๐ŸŽ› Choose Operator (Action) Pick one: serp, keywords_data, or competitors Each operator runs a different SEO analysis ๐ŸŒ Set Location & Language Example: locationcode: 2840 (US), languagecode: en ๐Ÿ•’ Run or Schedule Trigger manually or set a daily schedule New results will append to your Google Sheet automatically --- ๐Ÿ“บ Check Out My Channel ๐Ÿ’ฌ Learn more about SEO Automation, n8n, and AI-powered content workflows ๐Ÿ‘‰ Connect with me on LinkedIn: Nima Salimi Follow for more templates, AI workflows, and SEO automation tutorials ๐Ÿ’ฅ

Nima SalimiBy Nima Salimi
806

Daily Import Yesterday's Forex Factory Calendar to Google Sheets with Telegram Alerts

Overview This n8n workflow automatically fetches the Forex Factory calendar for yesterday using Rapid API, then saves the data to a connected Google Sheet and sends Telegram alerts for high and medium impact events. It runs daily on schedule, collecting key fields such as currency, time, impact, and market indicators, and organizes them for easy tracking and analysis. Perfect for forex traders and analysts who need quick access to reliable market data from the previous dayโ€™s events. โœ… Tasks โฐ Runs automatically every day ๐ŸŒ Fetches yesterdayโ€™s Forex Factory calendar via Rapid API ๐Ÿงพ Collects key data fields: year, date, time, currency, impact, actual, forecast, previous ๐Ÿ“Š Saves all records to Google Sheets for tracking and analysis ๐Ÿšจ Sends Telegram alerts for high and medium impact events โš™๏ธ Keeps your market data updated and organized with no manual work required ๐Ÿ›  How to Use ๐Ÿ“„ Create a Google Spreadsheet Create a new spreadsheet in Google Sheets and add two sheets: High Impact and Low Impact. Connect it to your Google Sheets nodes in n8n. ๐ŸŒ Find the API on Rapid API Go to Rapid API and search for Forex Factory Scraper. Subscribe to the API to get your access key. ๐Ÿ”‘ Connect Rapid API to n8n In your HTTP Request node, add the header below to authenticate your request: ๐Ÿ’ฌ Add Your Telegram Chat ID In the Telegram node, paste your Chat ID to receive daily alerts for high-impact news. ๐Ÿ•’ Activate the Workflow Enable the Schedule Trigger to run daily. The workflow will automatically fetch yesterdayโ€™s Forex Factory calendar, save it to Google Sheets, and send Telegram notifications.

Nima SalimiBy Nima Salimi
213

Daily import validated contacts from NocoDB to Brevo

Overview Automate your daily contact imports from NocoDB to Brevo.The workflow updates the record status in NocoDB at each step. For every email campaign, itโ€™s essential to keep your Brevo contact list updated so you can send personalized and targeted emails. This flow automates that process. โœ… Tasks โฐ Runs automatically every day ๐Ÿ—‚ Fetches only new/unimported records from NocoDB ๐Ÿ” Checks for missing required fields ๐Ÿšซ Filters out disposable/temporary emails ๐Ÿ“ฌ Creates contacts in Brevo ๐Ÿ“ Updates NocoDB status after each step ๐Ÿ›  How to Use 1๏ธโƒฃ Set your schedule The Schedule Trigger node runs the flow daily adjust to your preferred time. 2๏ธโƒฃ Prepare your table in NocoDB Your NocoDB table should contain at least: id first_name last_name email status (default: 0-not-imported) 3๏ธโƒฃ Configure your credentials Connect your NocoDB API Token in the NocoDB nodes. Connect your Brevo API Key in the Brevo node. 4๏ธโƒฃ Map your fields In the Brevo: Create Contact node, make sure first name, last name, and email match your NocoDB column names. ๐Ÿ“Œ Notes ๐Ÿ›ก Make sure your NocoDB project/table IDs match the ones in this template. ๐Ÿš€ This workflow processes contacts one-by-one to avoid heavy API calls and rate limit issues with Brevo. โœ… status values: 0-not-imported โ†’ new record 1-empty-fields โ†’ missing required fields 2-disposal-email โ†’ disposable email detected 3-contact-created โ†’ successfully created in Brevo

Nima SalimiBy Nima Salimi
170

Build a complete email CRM with Google Sheets & MailerSend

โœ‰๏ธ Automate MailerSend Email (Google Sheets) --- ๐ŸŒ Overview This workflow converts Google Sheets into a full Email CRM โ€” no HubSpot or Customer.io needed! It automates segmentation, sending, validation, and delivery tracking using: โœ… Google Sheets โ†’ CDP + Email Performance DB โœ… MailerSend โ†’ Email Template Delivery โœ… n8n โ†’ Automation + Logic + Scheduling It automatically: โ€ข Reads subscribers from a selected segment sheet โ€ข Validates email + checks for disposable domains โ€ข Sends a MailerSend email template โ€ข Updates send status + delivery result in Sheets Perfect for onboarding emails, promo campaigns, retention flows, newsletters & more! --- โœ… Key Features โ€ข ๐ŸŽฏ Unlimited audience segments โ€ข ๐Ÿšซ Deduplication system per execution โ€ข ๐Ÿ›ก๏ธ Disposable email filtering โ€ข ๐Ÿ”„ Automatic recurring runs (every 30 minutes) โ€ข ๐Ÿงฉ Template-based personalization (name, codes, journey) โ€ข ๐Ÿ“Š Real-time delivery tracking + analytics-ready data โ€ข ๐Ÿ” Zero CRM vendor lock-in --- ๐Ÿ“Š Database Sheets (Google Sheets Required) Use this database template: ๐Ÿ”— https://docs.google.com/spreadsheets/d/17KqltP-NqchPhZV7gk6QToqCZX6IiA5EBkDCBNsIX_0/edit?usp=sharing | Sheet Name | Purpose | Required Fields | |-----------|---------|----------------| | template | Campaign configuration | Id, templatename, journey, type, typetemplateid, discountcode | | segment1 / segment2 | Audience lists | userid, email, firstname, number | | transaction | Status + results history | userid, status, sentresult, sentat, templatename | transaction | CreatedAt | UpdatedAt | userid | email | number | firstname | status | databaseid | type | templateid | typetemplateid | templatename | journey | discountcode | gift_code | |----------------------------------|----------------------------------|-----------------|------------------------|-------------|------------|------------|-------------|------|-------------|-------------------|-----------------|---------|---------------|-----------| | 2025-10-25T13:11:41.567-04:00 | 2025-10-25T13:11:41.567-04:00 | uid_0000000001 | nimasalimi42@gmail.com | 9362000000 | Liam | 1-sending | segment1 | email | 1 | v28xxl2sq8dg785k | SMS-TEST | Test | disxxx | | | 2025-10-25T13:11:41.567-04:00 | 2025-10-25T13:11:41.567-04:00 | uid_0000000002 | user2@gmail.com | 9362000001 | Noah | 1-sending | segment1 | email | 1 | v28xxl2sq8dg785k | SMS-TEST | Test | disxxx | | | 2025-10-25T13:11:41.567-04:00 | 2025-10-25T13:11:41.567-04:00 | uid_0000000003 | user3@gmail.com | 9362000002 | Oliver | 1-sending | segment1 | email | 1 | v28xxl2sq8dg785k | SMS-TEST | Test | disxxx | | template | Id | templatename | journey | databaseid | type | typetemplateid | discountcode | giftcode | |----|---------------------------|----------------|-------------|------|-------------------|---------------|-----------| | 3 | Order-Confirmation | Order | segment3 | email | v28xxl2sq8dg785k | discount2 | | | 4 | Shipping-Notification | Notification | segment4 | email | v28xxl2sq8dg785c | discount3 | | | 5 | Add-to-Cart-day1 | Add-to-Car | segment5 | email | v28xxl2sq8dg785d | discount4 | | | 6 | Welcome-New-Customer | Welcome | segment6 | email | v28xxl2sq8dg785s | discount5 | | | 7 | Churn-Pro-Plan | Churn | segment7 | email | v28xxl2sq8dg785g | proxc | | | 8 | Churn-Pro-Plan-1day-ago | Churn | segment8 | email | v28xxl2sq8dg785h | | shipx | segment1 | userid | email | number | firstname | database_id | |-----------------|-------------------------|--------------|------------|-------------| | uid_0000000001 | nimasalimi42@gmail.com | 09362000000 | Liam | segment1 | | uid_0000000002 | user2@gmail.com | 09362000001 | Noah | segment1 | | uid_0000000003 | user3@gmail.com | 09362000002 | Oliver | segment1 | | uid_0000000004 | user4@gmail.com | 09362000003 | Elijah | segment1 | | uid_0000000005 | user5@gmail.com | 09362000004 | James | segment1 | ๐Ÿ“Œ Add more segments simply by creating new sheets (segment3, segment4...) ๐Ÿ“Œ Change campaign by updating template_id in Setup Flow node --- ๐Ÿ‘ค Whoโ€™s it for? โ€ข Ecommerce email retention teams โ€ข SaaS CRM automation operators โ€ข Digital marketing & lifecycle pros โ€ข Agencies running multi-brand campaigns โ€ข No-code builders who want scalable CRM logic --- โš™๏ธ Automations Included Flow 1 โ€” Insert Users (Triggered on schedule) โ€ข Pull users from selected segment tab โ€ข Insert into transaction sheet โ€ข Status: 0-processing โ†’ 1-sending โ€ข Prevent duplicate sending โœ… Flow 2 โ€” Send Emails (Runs every 30 min) โ€ข Selects โ€œreadyโ€ users (1-sending) โ€ข Checks: Missing email โ†’ 3-no-email Disposable โ†’ 4-disposal-email โ€ข Sends via MailerSend template ID in sheet โ€ข Updates status โ†’ 2-sent + message result ๐ŸŽฏ Your entire CRM sending logic runs automatically every day --- ๐Ÿง  Personalization Support Available merge-fields: โ€ข first_name โ€ข discount_code โ€ข gift_code (Modify jsonBody to add more!) --- ๐Ÿ” MailerSend Setup Required Inside MailerSend node: Replace โ€œinfo@example.comโ€ with your verified sender email โœ… You must: โœ” Verify domain โœ” Approve sender email โœ” Copy correct template ID โ†’ Google Sheet --- ๐Ÿ’ก Optional Enhancements โ€ข Slack alerts for failed sends โ€ข Connect Looker Studio for dashboards โ€ข Add SMS / WhatsApp parallel flows โ€ข A/B test templates by duplicating rows โ€ข Add AI for subject optimization or copy rewrite --- ๐Ÿ“บ Connect With Me More workflows, CRM strategy & AI marketing automation ๐Ÿ‘‡ LinkedIn: https://linkedin.com/in/nima-salimi-a655a6231 Follow & โญ๏ธ this template if it helped you ๐Ÿš€

Nima SalimiBy Nima Salimi
119

Inserting Brevo contact reports into NocoDB

Overview This n8n workflow automatically retrieves Brevo contact reports and inserts summarized engagement data into NocoDB. It groups campaign activity by email, creating a clean, unified record that includes sent, delivered, opened, clicked, and blacklisted events. This setup keeps your CRM or marketing database synchronized with the latest Brevo email performance data. --- โœ… Tasks โฐ Runs automatically on schedule or manually ๐ŸŒ Fetches contact activity data from Brevo API ๐Ÿงฉ Groups all campaign activity per email ๐Ÿ’พ Inserts summarized data into NocoDB โš™๏ธ Keeps engagement metrics synced between Brevo and NocoDB --- ๐Ÿ›  How to Use ๐Ÿงฑ Prepare your NocoDB table Create a table with fields for: email, messagesSent, delivered, opened, clicked, done, and blacklisted. ๐Ÿ”‘ Connect your Brevo credentials Add your Brevo API Key in the HTTP Request node to fetch contact data securely. ๐Ÿงฎ Review the Code Nodes These nodes group contact activity by email and prepare a single dataset for insertion. ๐Ÿš€ Run or schedule the workflow Execute it manually or use a Schedule Trigger to automate the data sync process. --- ๐Ÿ“Œ Notes ๐Ÿ—‚ Make sure the field names in NocoDB match those used in the workflow. ๐Ÿ” Keep your Brevo API Key secure and private. โš™๏ธ The workflow can be expanded to include additional fields or filters. ๐Ÿ“Š Use the data for engagement analytics, segmentation, or campaign performance tracking.

Nima SalimiBy Nima Salimi
51

Automate monthly CrUX report transfer from BigQuery to NocoDB with data cleanup

Overview This n8n workflow automatically retrieves the monthly CrUX (Chrome User Experience) Report from Google BigQuery and updates the data in NocoDB. It removes the previous monthโ€™s data before inserting the new dataset, ensuring your database always contains the latest CrUX rankings for website origins. The flow is fully automated, using schedule triggers to handle both data cleanup and data insertion each month. --- โœ… Tasks โฐ Runs automatically on a monthly schedule ๐Ÿ”ข Converts the month name to a numeric value for table selection ๐Ÿงน Deletes last monthโ€™s CrUX data from NocoDB ๐ŸŒ Queries Google BigQuery for the latest monthly dataset ๐Ÿ’พ Inserts the new CrUX rankings into NocoDB โš™๏ธ Keeps your database up to date with zero manual effort --- ๐Ÿ›  How to Use 1๏ธโƒฃ Set Up BigQuery Access Connect your Google BigQuery credentials. Make sure your project includes access to the chrome-ux-report public dataset. 2๏ธโƒฃ Adjust the Query In the Google BigQuery node, change the LIMIT value to control how many top-ranked sites are retrieved. Ensure the {{ $json.table }} field correctly references the dataset for the desired month (e.g., 202509). 3๏ธโƒฃ Prepare NocoDB Table Create a table in NocoDB with fields: origin, crux_rank, and any additional metadata you wish to track. 4๏ธโƒฃ Schedule Automation The workflow includes two Schedule Trigger nodes: One runs the data cleanup process (deletes last month). One runs the data insertion for the new month. 5๏ธโƒฃ Run or Activate the Workflow Activate it to run automatically each month. You can also run it manually to refresh data on demand. ๐Ÿ“‹ Prerequisites Before running this workflow, make sure you complete the following setup steps: ๐Ÿงฑ Enable BigQuery API Go to Google Cloud Console โ†’ APIs & Services Enable the BigQuery API for your project. ๐Ÿ“Š Access the Chrome UX Report Dataset In BigQuery, search for โ€œChrome UX Reportโ€ in the Marketplace or go directly to: https://console.cloud.google.com/marketplace/product/chrome-ux-report/chrome-ux-report Click โ€œView Datasetโ€ and add it to your BigQuery project. ๐Ÿ”‘ Connect BigQuery to n8n In n8n, create credentials for your Google BigQuery account using Service Account Authentication. Ensure the account has permission to query the chrome-ux-report dataset. ๐Ÿ—„๏ธ Create a NocoDB Table In NocoDB, create a new table to store your CrUX data with the following fields: origin โ†’ Short text crux_rank โ†’ Number โš™๏ธ Connect NocoDB to n8n Use your NocoDB API Token to connect and allow the workflow to read/write data. What is CrUX Rank? CrUX Rank (Chrome User Experience Rank) is a metric from Googleโ€™s Chrome UX Report (CrUX) dataset that indicates a websiteโ€™s popularity based on real user visits. It reflects how frequently an origin (website) is loaded by Chrome users around the world. A lower rank number means the site is more popular (e.g., rank 1 = top site). The data is collected from anonymized Chrome usage statistics, aggregated monthly. This rank helps you track site popularity trends and compare your domainโ€™s visibility over time.

Nima SalimiBy Nima Salimi
48
All templates loaded