A Conversation Export Shifted Message Timestamps but Preserved Order: Recalculate Handoff Decisions
A timestamp shift can corrupt response-time and promise-date decisions, as well as aging decisions without changing the conversation itself. Correct the time rule, preserve native evidence, and recheck every decision that consumed exported time.
Research this article with AI
Follow Well Met on Google

A shifted timestamp after a handoff is an audit problem before it is a reporting problem. Do not overwrite the export or reorder messages, and do not close a handoff task from the displayed time alone.
Start by freezing three things: the source export and native conversation view or source record, plus the downstream reports or tasks that used the exported timestamp. Then determine whether the shift is a fixed offset, a timezone parsing error, a daylight-saving mismatch, a format conversion issue, or an unknown transformation.
RFC 3339 defines numeric offsets as local time minus UTC. To convert a local timestamp to UTC, subtract that offset from the local time. It also warns that unqualified local times create interoperability problems because the timezone cannot be reliably interpreted.
- Keep the export unchanged as evidence.
- Assign a stable message identifier or source-row reference to every reviewed message.
- Record the native timestamp, exported timestamp, timezone or offset evidence, and reviewer decision in one ledger.
What changed the exported timestamps?
Look for a single transformation that explains every checked record. A fixed shift, such as the same number of hours on each sampled message, may indicate that one system rendered UTC as local time or interpreted local time as UTC. Do not assume that rule applies to every record until you test messages on both sides of a date boundary and, when relevant, a daylight-saving transition.
An RFC 3339 timestamp with an explicit numeric offset identifies the relationship between local time and UTC. A bare local clock time does not. RFC 9557 also distinguishes a timestamp offset from a named timezone: an offset alone cannot safely describe future local-time calculations when timezone rules can change.
Use the source system's displayed or returned native timestamp as the reference only when it identifies an instant clearly enough to compare. If the source contains only an unqualified local time and no reliable timezone context, keep the exported value as evidence and mark the actual instant unresolved.
- Compare the same message in the source and export.
- Parse the date and time separately from offset suffix and timezone metadata.
- Test whether one rule explains the full reviewed sample.
- Stop and annotate when two plausible rules produce different instants.
Which handoff decisions need recalculation?
Recalculate only decisions that consumed time as an input. Message text, sender, recipient, and stable conversation order may remain usable when the export has a time shift. A response-time calculation, a promised follow-up date, an aging queue, a missed-SLA flag, or a task due-date decision must be reviewed if it used the shifted field.
Do not infer a missed commitment from ordering alone. Ordering can establish that one message preceded another, but it cannot establish the elapsed duration between them after a timestamp conversion error.
Microsoft Graph describes a chat message's createdDateTime as the timestamp of when the message was created and exposes modification-related timestamps separately. Keep created time separate from edit or modification time when comparing message records, because those fields answer different questions.
| Ledger field | What to record | Decision |
|---|---|---|
| Source reference | Conversation and message identifier or stable source-row reference | Preserve |
| Native timestamp | Source value, including offset or timezone evidence when available | Reference value |
| Exported timestamp | Value received by the handoff workflow | Preserve as evidence |
| Offset rule | Verified conversion rule, or unresolved status | Apply only when proven |
| Stable message order | Predecessor and successor references | Keep when order matches |
| Time-dependent decisions | Response-time, promise-date, aging, SLA, report, or task references | Recalculate or annotate |
| Corrected timestamp | Replacement instant and format | Write only when defensible |
| Reviewer | Name and review date | Required before closure |
Which records need corrected timestamps?

Correct the timestamp when you have a native source value or a verified conversion rule that identifies the same instant. Keep both the original exported value and the correction rule in the ledger. A correction without retained provenance makes later review harder.
Use an explanatory annotation instead of a replacement timestamp when the message order is stable but timezone or offset evidence is missing, or no source-of-truth timestamp is available. The annotation should say what is known, what shifted, which decisions were not recalculated, and what evidence would settle the record.
Do not use a fixed offset across a dataset merely because it works for one message. A named timezone can have rule changes and daylight-saving transitions. RFC 9557 notes that timezone rules can change over time and that an offset is unsuitable for some local-time operations.
- Correct: native timestamp exists and the conversion rule is verified.
- Annotate: sequence is reliable but the actual instant cannot be established.
- Escalate: corrected time could change a commitment or customer-facing follow-up, including its SLA result and the evidence is incomplete.
How do you recalculate response-time and aging decisions?
Build a decision inventory before changing reports. For each affected conversation, list the incoming message, the reply selected as the response, the original calculated duration, the corrected duration if derivable, and the report or task that displayed the old result.
Re-run calculations from corrected instants, not from rounded display values. Retain the old result as audit evidence and label the recalculated result with the correction ledger reference. If the source times remain unresolved, remove the numeric duration from the decision and record the uncertainty.
Event systems often retain records for later retrieval and processing. Apache Kafka's documentation describes events as carrying a timestamp and notes that consumers read records in partition order. That model is useful here as a handling principle: retain the original event evidence and separate sequence from timestamp interpretation.
- Response time: subtract the corrected inbound-message instant from the corrected qualifying reply instant.
- Promise date: recalculate the due moment from the corrected message instant only when the original promise rule is known.
- Aging: rerun queue age from the corrected start event and the reporting cutoff.
- SLA: rerun the rule only when the start, stop, pause, and applicable timezone evidence are available.
How should a reviewer close the handoff?
Close the handoff only after the ledger explains the transformation and identifies affected decisions, while separating corrected values from annotations. The reviewer should be able to trace every changed report or task back to a source message and a stated rule.
For legitimate consent-based business outreach, use this process to protect conversation follow-up and reporting accuracy. Do not treat the corrected times as proof of platform limits, message-delivery behavior, or outreach performance.
- Verify a sample of source and export records against the documented rule.
- Confirm stable message order where it is used as evidence.
- Recalculate or remove every affected time-based result.
- Link the ledger to each corrected report and task.
- Record the reviewer and unresolved records before closing.
RFC 3339 defines numeric local offsets as local time minus UTC and explains how to derive the UTC equivalent.
RFC Editor, 2002-07-01RFC 9557 explains that a UTC offset differs from a named timezone and that timezone rules can change over time.
RFC Editor, 2024-04-01Microsoft Graph documents createdDateTime as a chat message creation timestamp and lists distinct edit and modification timestamp fields.
Microsoft Learn, 2026-06-20Apache Kafka documents events as records with timestamps and states that consumers of a topic-partition read events in the order written.
Apache Kafka, 2026-05-22Frequently asked questions
Can I fix LinkedIn export timestamps by adding the same offset to every message?
Only after a reviewed sample proves that one fixed offset explains the exported values. Test dates that could cross a daylight-saving transition. If the source timezone or offset is unknown, annotate the record instead of asserting a correction.
Does preserved message order mean the handoff timing is still accurate?
No. Preserved order can show which message came first, but it cannot establish response duration, queue age, or a promise deadline after a time conversion error.
Which timestamp should I use when a message was later edited?
Use the creation timestamp for a response-time or initial-handoff calculation unless the business rule explicitly measures editing or modification. Keep edit and modification fields separate from creation time.
When should I annotate instead of correcting a timestamp?
Annotate when the original sequence is reliable but the native timestamp, timezone, or conversion rule cannot identify the actual instant. State the known shift, affected decisions, and evidence needed to resolve it.
Should I overwrite the original exported timestamp after correction?
No. Retain the original exported value, source reference, conversion rule, corrected value, and reviewer in the correction ledger. That preserves a path for later verification.