> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ledgerup.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Activity History

> Every action Ari takes is logged: who asked, who approved, what happened, and where to find the record.

export const AriMention = () => <span className="slack-mention">@Ari</span>;

export const SlackMessage = ({children, name = "Bailey", initials = "B", color = "#611f69", avatar = "/images/bailey-avatar.png", app = false, time = "2:47 PM"}) => <div className="slack-msg not-prose">
    <div className="slack-avatar" style={{
  backgroundColor: avatar ? "transparent" : color
}}>
      {avatar ? <img src={avatar} alt={name} /> : initials}
    </div>
    <div className="slack-msg-body">
      <span className="slack-name">{name}</span>
      {app ? <span className="slack-app-badge">APP</span> : null}
      <span className="slack-time">{time}</span>
      <div className="slack-text">{children}</div>
    </div>
    <div className="slack-actions">
      <button type="button" className="slack-action-btn" aria-label="Copy message" title="Copy message" onClick={e => {
  const msg = e.currentTarget.closest(".slack-msg");
  const el = msg && msg.querySelector(".slack-text");
  if (el && navigator.clipboard) {
    navigator.clipboard.writeText(el.innerText);
    const btn = e.currentTarget;
    const prev = btn.innerHTML;
    btn.innerHTML = '<svg viewBox="0 0 24 24" fill="none" stroke="#2AD48A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>';
    setTimeout(() => {
      btn.innerHTML = prev;
    }, 1200);
  }
}}>
        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
          <rect x="9" y="9" width="13" height="13" rx="2" ry="2" />
          <path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" />
        </svg>
      </button>
    </div>
  </div>;

Ari's work is auditable by default. The LedgerUp platform keeps a complete audit
history of everything that runs or flows through LedgerUp services, and because the
work itself happens in Slack threads and approved plans, every action carries a
conversational paper trail on top: no separate logging discipline required from your
team.

## What gets recorded

For every action Ari takes, the thread holds:

* **When** it happened (timestamp)
* **What** happened (the executed plan)
* **Who** approved it (their Slack name)
* **Why** (the original request, in conversational context)
* **Result** (confirmation of success, or the error)

This makes decisions easy to reconstruct later, whether the audience is an auditor, a
teammate, or you in three months.

## Where to look

<AccordionGroup>
  <Accordion title="Slack threads: the conversational record">
    The thread where work happened is the primary record: the request, the plan, the
    approval, and the confirmation, in order. Pin important threads so decisions stay
    visible to the team.
  </Accordion>

  <Accordion title="LedgerUp platform: the complete audit history">
    The system of record. The platform's audit history shows everything that has run
    or flowed through LedgerUp services: actions Ari took, tasks that fired, approvals
    and who gave them, and every email sent (recipients, send times, opens, and reply
    history), all searchable.
  </Accordion>

  <Accordion title="Ask Ari directly">
    The history is queryable in conversation:

    <SlackMessage><AriMention /> show the reconciliation history for invoice #INV-12345</SlackMessage>

    <SlackMessage><AriMention /> who matched this payment and when?</SlackMessage>

    <SlackMessage><AriMention /> show me the email thread with Acme Corp about invoice inv\_123</SlackMessage>
  </Accordion>
</AccordionGroup>

## Retention

The platform's audit history is retained independently of Slack, so nothing is lost
when Slack messages age out under your workspace's retention policy. Treat Slack as
the conversational view and the platform as the system of record. For accounting
records, you can also export reconciliation and collections reports (CSV or PDF) at
each close.

<Tip>
  The activity history doubles as onboarding. A new team member scrolling your AR
  channels sees exactly how decisions get made here, with the full context attached.
</Tip>
