Reading the audit ledger
The ledger is an append-only, hash-chained record of every event. It stores events and hashes, never bodies or recordings.
Every action in DialSplice writes an event to the audit ledger: claims, preflight checks, dispositions, reads, denials, configuration changes, exports. Each event links to the previous one by a SHA-256 hash, so changed, missing, or reordered history is detectable. The ledger stores events and hashes, not content. There are no message bodies, transcripts, or recordings in it.
What you’ll see
The Audit ledger panel shows “Append-only · chain verified” in its header when the chain checks out. Four columns follow: Event, Actor, Scope, Hash. Sample rows:
callback.claimed· M. Ortiz · Northgate · 7b02…9d4apreflight.evaluated· policy · Northgate · a3f9…c21ecall.disposition.set· M. Ortiz · Northgate · e51c…08b7contact.read· A. Patel · Northgate → Riverside · 4d77…f130 · “Denied · cross-clinic scope”sms.send· R. Okafor · Cedar Park · 18ab…d7c3 · “Reconciliation · provider outcome unknown”config.activated · rev 14· admin · organization · c9e0…5a62
The actor is a person, “policy” for automated checks, or “admin” for configuration. Scope is the location, or “organization” for org-wide changes. A flag chip marks denials and reconciliation.
Steps
- Open the ledger from the admin area. It is scoped to the locations you administer.
- Filter by event name, actor, scope, or time range.
- Read the flags first. A denial shows an attempted cross-scope read that was blocked. A reconciliation flag shows an effect whose provider outcome was unknown.
- To verify a stretch of history, read the chain state in the header, which is recomputed over the full hashes. The abbreviated hash in each row is for reference only; an export carries the full hashes if your reviewer wants to check the links themselves. A break is shown, never hidden.
- Export the rows your reviewer needs. The export is itself a logged event.
Reading common events
preflight.evaluated— a contactability check ran. One per channel per touch.call.disposition.set— an agent saved an outcome.contact.read— a record was opened. Denials are logged too.config.activated— a revision went live, with its number.
If something looks wrong
- The header does not say chain verified. Stop and contact DialSplice support. Do not export until the break is understood.
- You expected message text in a row. It is not there by design. Content lives in your provider and CRM.
- An event is missing. Check the scope filter. Events from other locations are not shown.
Related
- Configuration revisions and rollback
- Roles and scopes
- Exporting the call log
Can't find it?
Ask in the demo, or tell us what the article should have said.