Skip to content

One row per call event

Customer service call log: template and worked reconciliation

A useful call log preserves each call while showing which calls belong to the same request. Use the blank CSV and fictional worked example below to create an event ledger your office can reconcile. Four calls can represent two requests, one new inquiry and one existing-job question. This original template does not establish a Revo export, integration or booking feature.

Worked example: fictional records from the downloadable event ledger
Event / timeRequestDirection and purposeObserved resultNext action
EX-E01 /09:00EX-R01Inbound; new service inquiryRequest receivedEX-A01 open snapshot
EX-E02 /09:10EX-R01Outbound about the same requestNo answerEX-A01 later open snapshot
EX-E03 /09:20EX-R01Inbound reply about the same requestConfirmed in fictional calendar CAL01EX-A01 closed by EX-E03; CAL01 evidence
EX-E04 /09:25EX-R02Inbound; question about existing job EX-J02Follow-up pendingEX-A02 open; coordinator due 10:00

01 / One row per call event

Copy the blank ledger without inventing customer records

Download the header-only CSV. Keep one row per telephone event with event_id and request_id; timestamps and timezone; direction and authorized customer/job references; request_type; connection_result; request_outcome; and action snapshots: action_id, action_state, action_updated_at, closed_by_event_id, next_action, action_owner, due_at and evidence_reference. Use references instead of copying unnecessary personal details.

event_id identifies the particular call; request_id links related contacts about the same work. A repeated phone number alone is insufficient evidence of a shared request. When the relationship is uncertain, retain the call event with an unresolved request reference and send it for office review. Do not merge it merely to make the counts look tidy.

Record timestamps with an offset and the operating time zone. due_at belongs to the next action; it is not the call time. Leave job_reference empty if no job exists yet. The worked example uses the local time zone America/Tijuana and deliberately fictional EX-prefixed identifiers.

02 / One row per call event

Reconcile four events into two requests

EX-E01 opens EX-A01 for EX-R01. EX-E02 records no_answer and a later open snapshot of EX-A01, not another lead. EX-E03 records connected and appointment_confirmed, supported by fictional calendar CAL01. Its EX-A01 snapshot is closed and names EX-E03 in closed_by_event_id. Earlier open snapshots remain unchanged as history. This scheduling closure does not establish completed field work.

EX-E04 belongs to EX-R02 and an existing job, EX-J02. The call was answered, but the customer’s job question still needs a coordinator. Answered therefore does not mean resolved. Keep that next action assigned to the Example coordinator, with its own due time.

The resulting reconciliation is four distinct call events, two service requests, one new-service inquiry, one confirmed appointment and one existing-job question awaiting follow-up. These are counts from the fictional file, not customer results, a conversion benchmark or a causal comparison of services.

Reconstruct the current action list by deduplicating identical event_id rows; flag conflicting versions for review. Group snapshots by action_id and select the greatest action_updated_at after parsing its offset. If equal timestamps disagree, stop for review rather than selecting arbitrarily. Keep only latest snapshots with action_state open. Never sum historical open snapshots. A later reopening requires an appended snapshot with a later timestamp and evidence; preserve the prior events.

03 / One row per call event

Check the source view before copying a report

Housecall Pro’s July 16, 2026 Call Log Guide distinguishes missed, answered inbound, outbound and voicemail views. It says its emailed CSV export follows the current view and applied filters and is limited to 5,000 calls. Those documented product rules were reviewed October 23, 2026. They do not describe every provider’s export or a Revo capability.

A filtered export can be correct and still omit the events needed for reconciliation. Record the selected view, date range, time zone, filters and export time beside the saved file. Compare a small known set with the source log. If the system creates separate transfer legs, ask what each identifier represents before deciding whether two rows are duplicate events.

Import original source data into a preserved copy before mapping it into this template. Keep a stable import reference. Correct a mistaken request link with a dated explanation rather than erasing the original telephone event. This preserves the difference between a data correction and a call that did not occur.

04 / One row per call event

Close the office action with evidence, not a cleared badge

Reconstruct the latest snapshot per action_id before reviewing due actions. Preserve every historical event. For a closed action, closed_by_event_id identifies its closing event and evidence_reference identifies the supporting record. Earlier owners and due times remain history, not current assignments.

A read or played message is not, on its own, a completed customer response. Housecall Pro’s guide says viewing missed-call details or playing a voicemail affects its badge count. That is a useful example of why an interface notification and the underlying office task need separate checks.

Use the blank CSV as an operating template, not a replacement for the authoritative customer, job or calendar system. Before storing real records, apply your business’s existing access and retention arrangements. Reconcile the next-action list with those source systems at the review interval your office actually uses.

Common questions

Make the next step clear.

Resolve the details that matter to your team and callers.

Why keep both an event ID and a request ID?

An event ID distinguishes each call. A request ID links related contacts about the same work. In the example, three different events link to EX-R01 without becoming three new inquiries.

What is the outstanding action after the four example calls?

The latest EX-A01 snapshot is EX-E03 (closed); the latest EX-A02 snapshot is EX-E04 (open). Only EX-A02 remains due, assigned to the Example coordinator. Earlier open EX-A01 snapshots remain history. Field work completion is not established.

Does the template import directly into Revo or Housecall Pro?

No integration is asserted. This is a neutral CSV ledger. Map only fields supported by your authorized source system and preserve the original export.

Preserve every real call event, link it to the right request and close only the action supported by an office record.

Review Revo’s current features and plans for the workflow your business needs.

Compare plans