Skip to main content

Call Logs

Every customer call — inbound or outbound — should be logged against the lead it's about. The dealer CRM exposes two entry points for this: the Log Call button on the lead form, and the standalone Dealer CRM → Call Logs menu. Both write to the same model (dealer.crm.call.log), both are tracked for audit, and both surface on the lead they belong to.

Why log every call

  • Hand-off continuity. If an agent goes on leave, the next person picking up the lead can read the history without guessing what was discussed.
  • Accurate stage advancement. Agents move a lead from Qualified to Negotiation based on what's been said. The call log makes the reasoning visible.
  • Audit pulls. Auditors verifying agent productivity pull call logs filtered by agent + date range. See Audit trail.
  • Dispute resolution. If a customer claims "nobody called me back", the voicemail entry is evidence.

Log a call from the lead form

  1. Open the lead (Dealer CRM → Pipeline → My Pipeline or All Leads, then click the card)
  2. Click Log Call in the form header

Log Call button on the lead form header

  1. Fill in the wizard

Log Call wizard

  1. Click Save — the wizard closes, the call log is created linked to this lead, and the lead's Calls stat button increments by one.

Wizard field reference

FieldTypeNotes
LeadMany2one → dealer.crm.leadPre-filled from context. Hidden if opened from a lead form.
AgentMany2one → res.usersDefaults to the current user. Editable — set this to a different agent if logging on their behalf, but be aware that create_uid will still record the logger.
Call DateDatetimeDefaults to now. Adjust if you're backfilling.
Duration (minutes)FloatHow long the call lasted. Enter 0.5 for 30 seconds, 4.5 for 4 minutes 30 seconds.
ResultSelectionAnswered / No Answer / Busy / Voicemail / Wrong Number. Drives reporting.
SummaryTextFree-form. One or two sentences is usually enough — capture what was discussed and the next action.

None of these are strictly required at the DB level, but auditors will flag missing Summary entries, so treat it as required in practice.

The Calls stat button

Every lead form shows a Calls stat button in the button box at the top of the form. The number is the count of linked call logs.

Calls stat button on the dealer lead form

Click it to drill into the list of calls for that lead only. From there you can click any row to see the full call log form, or add a new one via the list's New button.

The standalone Call Logs menu

Dealer CRM → Call Logs opens the global list of every call log across every lead.

Standalone Call Logs list

This is the view auditors care about. Use the search bar and built-in filters to narrow:

  • By agent — search for a specific user
  • By date range — the search bar accepts natural date filters ("this week", "last month")
  • By result — filter to voicemail to find leads that need a callback

Group by Agent or Call Date for daily/weekly rollups — handy for "how many calls did each agent log this week".

The call log form

Click any row in the stat-button list or the standalone menu to open the form.

Individual call log record

Fields are the same as the wizard, editable by the agent who logged them or by any dealer manager. The Lead back-link opens the source lead directly.

Editing and deleting

ActionDealer UserDealer Manager
Create
Read (own)
Read (all)
Update (own)
Update (others)
Delete

Users can update their own call logs in case of a typo, but deletion is blocked for dealer users — the audit trail stays intact. Dealer managers can delete, but deletion events are themselves logged on the parent lead's chatter, so deletions are still traceable.

Audit trail

dealer.crm.call.log records carry Odoo's standard bookkeeping fields automatically:

FieldMeaning
create_uidUser who created the call log (always the logger, regardless of who the Agent field points at)
create_dateWhen the call log was created (server time)
write_uidLast user to edit the call log
write_dateWhen the last edit happened

These four fields are the auditor's primary evidence: they let you verify that Agent X actually logged the call at Time Y, independent of any field the user can edit.

On the parent dealer.crm.lead, the call_log_ids one2many tracks every call log. The lead's chatter doesn't mirror individual call-log contents (to avoid noise), but the Calls counter updates automatically, and linked call logs show under the Calls tab list.

Typical audit pulls

"How many calls did agent X log last week?"

  1. Dealer CRM → Call Logs
  2. Filter: Agent = X, Call Date between last Monday and Sunday
  3. Count the rows. For an aggregate, Group By → Result.

"Show every voicemail we left on leads that went on to Lost."

  1. Dealer CRM → Pipeline → All Leads → Filter Lost
  2. Export the lead names
  3. Dealer CRM → Call Logs → Filter lead_id in [...] and Result = Voicemail

"Audit a specific dispute: customer says we never called them back on 2026-04-10."

  1. Open the dealer lead from the customer's name
  2. Click the Calls stat button
  3. Scan call logs on or after 2026-04-10. create_date is the source of truth for when the agent logged it — not call_date, which the agent can backdate.

Retention

Call logs are never auto-deleted. Archiving the parent lead (active = False) does not touch its call logs — they remain queryable. A dealer manager deleting a call log is permitted by design, but it leaves a chatter entry on the parent lead recording the deletion user + timestamp.

If your compliance regime requires immutability, remove the Delete permission from group_dealer_manager on the dealer.crm.call.log access rule. That change is a one-line edit in security/ir.model.access.csv and a module upgrade.