Skip to main content

Sync Gmail sent email contacts with Odoo mailing lists

Workflow preview

Workflow preview
100%
Sync Gmail sent email contacts with Odoo mailing lists preview
Open on n8n.io

1. Workflow Overview

Email Contacts Sync from Sent Mailbox to Odoo This workflow automatically extracts recipient email addresses from previously sent emails, validates and cleans the data, and synchronizes only delive...

Best for

  • CRM automation workflows
  • AI Summarization automation workflows
  • advanced n8n builders looking for reusable templates

Tools used

n8n-nodes-base.noop, n8n-nodes-base.scheduletrigger, n8n-nodes-base.set, n8n-nodes-base.code, n8n-nodes-base.httprequest, n8n-nodes-base.if, n8n-nodes-base.splitout, n8n-nodes-base.splitinbatches

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by BHSoft.

Original n8n.io source

1.1 Workflow description

Title
Sync Gmail sent email contacts with Odoo mailing lists
Workflow name
Sync Gmail sent email contacts with Odoo mailing lists

Email Contacts Sync from Sent Mailbox to Odoo

This workflow automatically extracts recipient email addresses from previously sent emails, validates and cleans the data, and synchronizes only deliverable contacts into the internal Odoo Mailing List. It also monitors replies and bounce signals to support follow-up and engagement tracking.

📌Who is this for?

  • Marketing team (Email campaigns)
  • CRM / Odoo administrators
  • Sales team (follow-up & customer engagement)
  • Operations / Automation engineers (n8n workflows)

📌The problem

  • Customer emails are scattered across sent mail history instead of a centralized list.
  • Manually copying recipients into Odoo is slow and error-prone.
  • Sent emails may include invalid or bounced addresses.
  • Duplicate contacts appear frequently.
  • Hard to know which recipients have replied or not for follow-up.

This leads to:

  • messy contact database
  • high bounce rate
  • missed follow-ups
  • inefficient manual work

📌How it works

  • The system calculates the target date and queries the Gmail API to retrieve emails sent within the last X days.

  • For each sent email:

  • Extract recipients from the To/Cc fields

  • Normalize data (trim, lowercase, remove duplicates)

  • Check the email thread to detect replies or bounce/system responses

  • Each recipient is then classified into one of the following lists:

  • deliverableEmails

  • repliedEmails

  • bounceEmails

  • autoReplies

  • noResponse

  • Push the list of deliverable emails to the internal Odoo system as Mailing List Contacts.

  • Add emails from the bounce list to Blacklisted Email Addresses in Odoo to prevent future sending.

  • (Optional) Log all processing results into Google Sheets for tracking and auditing.

📌Quick setup

Required information:

  • N8n Version 2.4.6
  • Gmail OAuth2 API
  • Odoo API-KEY

Google Sheets will be used to log all notified events.

📌Results

  • Automatically build contact list from real sent emails
  • No manual data entry
  • Only valid emails stored in Odoo
  • Reduced bounce rate
  • No duplicates
  • Easy follow-up tracking
  • Better CRM hygiene and campaign performance

📌Take it further

  • Auto follow-up if no reply after X days
  • Auto-remove hard bounces
  • Engagement scoring
  • Reply analytics dashboard
  • Sync with Loyalty/CRM systems
  • Scheduled daily sync

📌Need help customizing?

Contact me for consulting and support: Linkedin / Website

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - End

Type / Role
n8n-nodes-base.noOp - noOp
Config choices
Version 1

Block 2 - Step 1: Schedule Trigger every day at 7 AM

Type / Role
n8n-nodes-base.scheduleTrigger - scheduleTrigger
Config choices
Version 1.3

Block 3 - Step 2: Set Variables

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.4

Block 4 - Step 3: Get date time

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 5 - Step 4:Get the list of emails sent 10 days ago.

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 6 - Step 5: If resultSizeEstimate has a record ==> true

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2.3

Block 7 - Step 6: Split Out emails sent

Type / Role
n8n-nodes-base.splitOut - splitOut
Config choices
Version 1

Block 8 - Step 7: Loop Over email sent

Type / Role
n8n-nodes-base.splitInBatches - splitInBatches
Config choices
Version 3

Block 9 - Step 8: Get email information about thread_id

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 10 - Step 9: Handling mail sorting from headers

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 11 - Step 10: Merge the categorized mailing lists

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 12 - Step 14: Search email in Mailing List Contacts

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 13 - Step 15: If number of records is not 0 = true

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2.2

Block 14 - Step 16.1" Check if list_ids contains 020.Good-to-send

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 15 - Step 16.2: Add new email in Mailing List Contacts

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 16 - Step 17: If list_ids = true

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2.2

Block 17 - Step 18: Update email in Mailing List Contacts

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 18 - Step 19: Return all data from step 10.

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 19 - Step 20: Split Out bounceEmails

Type / Role
n8n-nodes-base.splitOut - splitOut
Config choices
Version 1

Block 20 - Step 21: Loop Over bounceEmails

Type / Role
n8n-nodes-base.splitInBatches - splitInBatches
Config choices
Version 3

Block 21 - Step 22: Search email in Blacklisted Email Addresses

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 22 - Step 23: If number of records is not 0 = true

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2.2

Block 23 - Step 24.1" Check if reason_type contains Bounced

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 24 - Step 24.2: Add new email in Blacklisted Email Addresses

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Showing the first 24 of 47 workflow blocks. Download the JSON for the full node graph.

3. Summary Table

Workflow Sync Gmail sent email contacts with Odoo mailing lists
Complexity advanced
Nodes 47
Categories CRM, AI Summarization
Author BHSoft
Published 12 Feb 2026

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/13324/13324.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Sync Gmail sent email contacts with Odoo mailing lists do?

Email Contacts Sync from Sent Mailbox to Odoo This workflow automatically extracts recipient email addresses from previously sent emails, validates and cleans the data, and synchronizes only delive...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your CRM, AI Summarization use case.