Ten jobs that work the record while you work the deal
Syncing the mailbox, pulling the CRM, watching for deals going quiet, turning the promises you made in a thread into tasks. None of it waits for you to remember it.
Everything running in the background
This is all of it. The job registry in the codebase and this page hold the same ten entries — there is no eleventh one going unmentioned.
Odoo pipeline sync
Keeps your board and Odoo saying the same thing about every opportunity and stage, in both directions.
odoo.pipeline_syncOdoo lead import
Brings new leads in as they appear, tracking each run so a lead that failed to import is visible rather than lost.
odoo.lead_importInbox sync
Pulls your Outlook threads through Microsoft Graph, so client mail is on the deal without you forwarding it there.
inbox.syncCalendar sync
Keeps your meetings current, and feeds both the daily brief and the minutes that hang off them.
calendar.syncMeeting attendance
Records who actually joined, so the recap goes to the people who were in the room.
meeting.attendance_syncPipeline monitor
Watches for deals that have gone quiet or overstayed their stage, and raises them on your Today brief.
pipeline.monitorLead advisor
Scores the signals around incoming leads and ranks what is worth your next hour.
pipeline.advisorTask generator
Catches the commitments you made in threads and meetings and turns them into tasks — then pushes them to Microsoft To Do.
tasks.autogenOwner digest
Mails you what moved on your deals since the last digest, so nothing needs chasing down manually.
notify.email_digestDeal linking
Matches loose emails against your open opportunities and attaches the ones it is confident about.
deals.linkBoring on purpose
Background work earns trust by being predictable. These four properties are what make it safe to stop thinking about — which is the entire point of it.
Only what changed
Mail and calendar sync the delta rather than re-reading your whole mailbox — so syncing is quick, and a run that gets interrupted picks up where it stopped.
Every run is recorded
Each run logs when it started, how long it took, what it changed, and the error if it failed. “The sync has been broken for a week and nobody noticed” is not a state this can be in.
You can always force it
Jobs run on their own cadence, and every one of them can be triggered by hand from Settings when you need the record current before a call in ten minutes.
Tuned to your team
Sync cadence is set per workspace and per user, so a team that lives in Outlook pulls more often than one that barely touches it.
Your mailbox and your CRM, kept in step
Sales OS does not ask you to abandon Outlook or Odoo. It keeps its own record aligned with both, in both directions.
Microsoft 365
via Microsoft GraphYou connect your own mailbox through OAuth 2.0, and the connection asks only for the scopes each feature actually needs. Revoke it and the next run stops.
Odoo CRM
via Per-workspace connectionConnected once in Settings by an admin, with the connection keys sealed with AES-256-GCM before they are stored. Import runs are tracked batch by batch, so a lead that failed to come across is visible rather than simply missing.