Beyond data, Enginy brings activity into Odoo: what your campaigns send and the tasks your team handles.
Campaign activity goes to the chatter
Every email or LinkedIn message sent from a campaign is logged in the chatter of the Odoo record, which is the conversation thread you see under each contact.
Note: Messages are logged as visible comments, not internal notes. Anyone opening the contact in Odoo sees the activity without having to look for it.
One message is logged per send, with its real date. If a campaign sent something three days ago, the message appears dated three days ago, not today.
Each entry opens with a header line naming the channel and the direction, so you can scan the thread without opening every message:
Channel | Header in the chatter |
| |
LinkedIn message |
|
LinkedIn connection request |
|
LinkedIn InMail |
|
Call |
|
Anything else |
|
When the message has a subject it is appended after a dash, and a bounced email is marked (bounced).
Important: Odoo does have a Campaign mapping panel, and campaign fields are written onto the contact. What is specific to Odoo is where the messages go: into the chatter, rather than into their own activity records.
Tasks and activities
An Enginy task becomes an activity in Odoo on the matching contact.
What Enginy can do:
Create the activity in Odoo from an Enginy task, with its subject, note, due date, and assignee.
Edit an existing activity: subject, note and due date.
Complete it from Enginy, which marks it done in Odoo.
Pick up a completion made in Odoo, which marks it done in Enginy.
Delete the activity.
Log calls, which reach the chatter as a
Callentry.
Warning: Deleting an Odoo activity really deletes it. Odoo removes the record rather than archiving it, so there is no history left behind. This is different from other CRMs, where Enginy closes the task and keeps it.
One detail about editing: an empty note is skipped rather than applied, so you cannot clear a note from Enginy. Replace its content instead.
Note: Picking up tasks completed in Odoo is periodic, not instant. If someone completes an activity in Odoo, it takes a while to show up in Enginy.
Important: Odoo does not have the Tasks configuration step that exists for other CRMs, where call outcomes are matched. That step does not appear for Odoo and there is nothing to configure.
What Enginy does not read from Odoo
Enginy does not read the Odoo timeline. It does not bring into Enginy the activities, messages, or notes your team creates directly in Odoo.
The only thing that travels from Odoo to Enginy here is that an already linked task has been completed.
Owners
The owner of a record is an Odoo user. Enginy reads the list of active internal users from your instance.
You can set a default owner for anything exported.
You can change it on each individual export.
The record is subject to that user's permissions in Odoo.
Portal users and deactivated users do not appear in the selector.
When campaign fields reach Odoo
Two things changed here recently, and they are worth stating plainly because the old behaviour caught people out.
Campaign Mapping fields do not depend on message logging
The Campaign setting that controls conversation export decides whether messages are posted to the chatter. It does not control whether Campaign Mapping fields are written.
Note: The two used to be coupled: turning conversation export off also stopped Sequence Status from updating, silently. They are now independent — campaign fields mirror every send and reply whatever the message-logging setting says.
Sequence Status also syncs on enrollment, so it appears when the contact enters the campaign rather than only after the first message is logged.
Status also syncs on lifecycle changes
Status used to reach Odoo only on message events. It now also syncs when you:
Pause or resume a contact.
Block a lead.
Add contacts to a campaign, or remove them from one.
A blocked lead is reported with a blocked status rather than dropping out of the sync.
Important: These syncs never fail the action that triggered them. Pausing a contact still works if Odoo is unreachable — the failure surfaces in the sync status instead.
