Skip to content

Audit log

An audit log is an append-only, timestamped record of who did what, when — and, ideally, why. Every meaningful action in a system becomes one entry: a message sent, a consent changed, a setting edited, an agent's decision. Because entries are only ever added, never edited, the log is the evidence of what actually happened.

Updated 3 min readBy fromHello

Key takeaways

  1. An audit log records who did what, when — and ideally why — as one append-only entry per action.

  2. It is how you demonstrate GDPR accountability and how you audit an AI agent's decisions after the fact.

  3. Append-only is not the same as tamper-evident: to trust the log, protect its integrity, not just block edits in the UI.

What goes in an audit log?

  • Actor — who took the action: a teammate, an API key, a scheduled job, or an AI agent working through an API or an MCP server.
  • Action — what they did: sent a campaign, changed a consent record, edited a segment rule, paused an ad audience.
  • Target — the resource affected, with a stable identifier: which journey, which template, which profile.
  • Timestamp — when it happened, to the second, in a fixed timezone; UTC keeps entries comparable.
  • Context — the why, where you have it: the before-and-after values, the reason given, the request that triggered it.
An audit log and the terms next to it.

How does an audit log work?

Every meaningful action writes one row and moves on — the log is never updated in place. That append-only design is what makes the history trustworthy: you can replay exactly what happened, in order. But append-only in the application is not the same as tamper-evident. If someone with database access can rewrite rows, the log proves less than it looks like it does. Making it tamper-evident — write-once storage, hash-chaining, or shipping entries to a separate system — is a further step, and engineering standards such as NIST's guide to log management treat protecting log integrity as its own requirement.

How do you audit an AI agent's decisions?

When an AI agent changes things in your tools, through an MCP server or a built-in assistant, the audit log is how you keep human-in-the-loop oversight after the fact. Each action (a segment created, a journey drafted, a change approved) should be recorded with the agent or key that made it, the person who approved it where there was an approval, and the inputs it used. fromHello records MCP tool calls in the workspace audit log: the tool, who called it, when, and whether it succeeded. That gives you a trail you can read and question, instead of a black box.

Why it matters for a two-person team

The GDPR's accountability principle says you must be able to demonstrate compliance, not just claim it — and regulators such as the UK's ICO point to records of what you did as the evidence. An audit log is that evidence, produced as a side effect of normal use rather than assembled in a hurry before a review. If you self-host, it lives in your own database; the practical setup is covered in GDPR and self-hosting, while this entry only defines the log.

FAQ

Common questions

  • Audit log vs application log — what is the difference?

    An application log is for debugging: it records technical events, errors, and traces for engineers. An audit log is for accountability: it records business-meaningful actions — who changed what — in a form you can show a regulator or a customer. The two overlap, but they answer different questions.

  • Is an audit log the same as immutable?

    Not exactly. Append-only means the application never edits past entries, but a database admin still might. Immutable, or tamper-evident, storage — write-once media, hash chains — is a stronger guarantee. For a small team, append-only plus restricted database access is a reasonable starting point.

  • How long should you keep audit logs?

    As long as they serve a purpose, and no longer. Security investigations and GDPR accountability set a floor; storage cost and data minimisation set a ceiling. Many teams keep security-relevant logs for a year or more, but there is no single legal number — retention follows the reason you hold them.

  • Do audit logs contain personal data?

    Often yes — an actor's identity, a customer's profile ID, sometimes message content. That puts the log itself in scope for the GDPR: secure it, limit access, and set a retention period, the same as any other store of personal data.

fromHello is open-source marketing automation: messages triggered by what people do.

fromHello Cloud is in early access through the waitlist.

Early access

fromHello Cloud

You didn’t start this to stay small.

Early access to fromHello Cloud opens in stages. Onboarding is hands-on: we help you get set up and bring your contacts over.

We’ll email you when your spot opens. No spam.

Not ready to join? View on GitHub