For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
DashboardGet an API key
SetupCustomersOnboardingsWorkbenchAsk PiIntegrations
SetupCustomersOnboardingsWorkbenchAsk PiIntegrations
  • Customers
    • Overview
    • Add a customer
    • Edit customer details
    • Health score
    • At risk and churned
    • Add contacts
    • Manage contacts
    • Search customers
    • Tags and metadata
    • Customer history
LogoLogo
DashboardGet an API key
On this page
  • What gets logged
  • Filter the feed
  • Export the feed
  • The gotcha: deleted contacts in old entries
  • Related
Customers

Customer history

Every change to a Customer record lands here, filterable by actor and event type.
|View as Markdown|Open in Claude|
Was this page helpful?
Previous

Tags and metadata

Built with

Open any customer and click the Activity tab. You’ll see a reverse-chronological feed of every change to the record: field edits, phase moves, task completions, comments, sync writes from your CRM, status flips, and Pi’s automated nudges. Each entry stamps the actor, the timestamp, and a diff if a value changed. The feed is the source of truth when something looks off and you need to figure out who did what.

What gets logged

The feed captures every write that touches the customer or its children. Major event types:

Event typeFired when
customer.field_changedAny inline edit to name, domain, owner, plan, status, tags, or a custom field
customer.status_changedStatus moves between active, at_risk, churned, archived
customer.health_score_droppedScore drops by 10 or more
onboarding.phase_movedAn onboarding linked to this customer moves phases
task.completed / task.createdAny task on a linked onboarding changes state
contact.added / contact.archivedContacts on this customer change
comment.addedComments anywhere on the customer or its onboardings
integration.sync_writeA CRM sync wrote to this customer
pi.nudgePi posted a risk or attention nudge

System-driven events (CRM syncs, Pi nudges) appear with the source’s icon so you can tell them apart from human edits at a glance.

Filter the feed

The filter bar above the feed has three controls:

  • Actor. You, a specific teammate, an integration (HubSpot, Stripe, Slack), or Pi. Multi-select.
  • Event type. Pick from the table above. Useful when chasing a specific change.
  • Date range. Preset (7d, 30d, 90d) or custom.

Filters stack, so “HubSpot writes in the last 7 days that changed plan” is Actor: HubSpot + Event: customer.field_changed + date range, then expand the entries to confirm the field.

Export the feed

Click the ⋯ menu at the top right of the tab and pick Export to CSV. The export respects your current filters, so filter first if you want a slice. Columns: timestamp, actor, actor_type, event_type, field, old_value, new_value, onboarding_id. Rows are line-per-event, one row per changed field on multi-field edits.

For programmatic access, hit GET /v1/customers/{id}/activity. Same data shape as the export.

The gotcha: deleted contacts in old entries

If you deleted (not archived) a contact, every old activity entry that referenced them collapses to “removed contact” with no name. The event itself stays, but the actor or target becomes anonymous. This is why most teams archive instead. See manage contacts.

Related

  • Edit customer details
  • Manage contacts
  • Audit log

Email help@pivotal.app with a screenshot of where you got stuck and the customer or onboarding id from the URL.