Loops.so Connector

Keep your Loops audience in sync with Odoo and send Odoo emails through Loops

Loops.so Connector pushes your Odoo contacts and the fields you choose to Loops, and sends mapped Odoo mail templates through your Loops transactional templates. Every API call is logged, and a failed send falls back to your normal Odoo mail server.

Odoo 19.0 · Community, Enterprise · Odoo.sh, On-premise · 79,00 € · Buy on Odoo Apps

Available for: Odoo 19.0

The problem

Many teams design their emails in Loops but keep their customers in Odoo. Someone exports a CSV and uploads it by hand, until the week nobody does, and new customers never hear from you. The same email gets rebuilt as an Odoo template and the two versions drift apart by the second edit. When support asks whether a customer got their confirmation, nobody can prove a send.

What it does

One connection to set up

Contact sync you control

Custom contact properties

Template mappings

Built for the bad days

Proof of every send

Loops Configuration screen in Odoo showing the Connected badge, API key, contact sync switch, contact source and default mailing list
The Loops configuration: connection, contact sync and counters in one place.
Template mapping form pairing the Odoo Invoice Ready template with a Loops transactional template, with data variables bound to record fields
A template mapping with its Loops data variables bound to the record.
Delivery logs list with successful contact, event and transactional email calls and one failed call with a Retry button
The delivery log: every call with its status, and a one-click retry for failures.

Who it is for

Not a fit when:

Install

Requires: Discuss (mail), Python requests library

  1. Buy the app on the Odoo Apps Store for Odoo 19.0.
  2. Add the module to your Odoo.sh project or to the addons path of your on-premise server.
  3. Update the apps list in Odoo and install Loops.so Connector. Discuss is installed with it if it is missing.

Odoo Online (SaaS) does not allow third-party apps, so this app cannot be installed there. Use an Odoo.sh project or an on-premise Odoo 19 database.

Configure

  1. In your Loops settings, create an API key for this integration and note the transactional templates you want Odoo to send.
  2. Open the Loops configuration in Odoo, paste the key and click Test Connection.
  3. Turn on Sync contacts, choose a default mailing list and decide whether Delete on removal should be on.
  4. Add a row under Contact Properties for each partner value you want in Loops. The property must already exist in Loops.
  5. Sync your Loops transactional templates, create a template mapping, click Load Data Variables and use Send Test to check the call in the delivery log.
SettingWhat it does
EnabledTurns the connector on or off for this database.
API KeyThe Loops API key. It is stored for Settings users only.
Sync contactsSends Odoo contacts with an email address to Loops on the 15 minute schedule.
Contact sourceThe source label Loops shows for these contacts, set to Odoo.
Default mailing listThe Loops mailing list new contacts join.
Delete on removalDecides whether a contact deleted in Odoo is removed from Loops or simply stops updating.
Contact PropertiesRows of Loops property, type and value expression that push partner values to Loops custom properties.

How to use it

Keep your Loops audience current

  1. Work in Odoo as usual: create customers, correct email addresses, confirm orders.
  2. The connector queues each contact change and sends it to Loops in batches of 50 every 15 minutes.
  3. Check the delivery log if you want to see exactly what was sent.

Send an Odoo email through Loops

  1. Create a template mapping between the Odoo mail template and the Loops template.
  2. Bind the Loops data variables to value expressions on the record and run Send Test once.
  3. From then on, when Odoo sends that template, the connector sends it through Loops immediately with the record's data.

Check and retry a failed call

  1. Open the delivery logs and filter for errors.
  2. Read the status, payload and response to see why Loops refused the call.
  3. Fix the cause, for example a missing data variable, and click Retry.

Limits

Frequently asked questions

How do I sync Odoo contacts to Loops.so?

Install Loops.so Connector, paste your Loops API key and turn on Sync contacts. Contacts with an email address and the custom properties you map are sent from Odoo to Loops every 15 minutes in batches of 50.

Can I send Odoo emails through Loops transactional templates?

Yes. A template mapping pairs an Odoo mail template with a Loops template and binds each Loops data variable to a value on the record. When Odoo sends that template, the connector sends it through Loops immediately. Your designs stay in Loops.

What happens when the Loops API is down?

A mapped email falls back to your Odoo outgoing mail server, so the customer still receives it. A contact that could not be sent stays queued for the next run. Every failure is in the delivery log with the response and can be retried by hand.

Does the Loops connector replace my Odoo outgoing mail server?

No. Ordinary Odoo mail keeps going through your mail server. Loops.so Connector only sends the mail templates you map to a Loops transactional template.

Does my data pass through FlexCode servers?

No. Your Odoo database talks to the Loops API and to nothing else. There is no middleware, no licence check and no telemetry.

Which Odoo versions does the Loops connector support?

Odoo 19.0, Community and Enterprise, on Odoo.sh or a self-hosted server. It depends only on standard Odoo modules and the Python requests library. Odoo Online does not allow third-party apps.