Every row on a contact's timeline carries an actor — the person or system that caused it. Rows you caused show your name. Rows the software caused show a robot icon and the words System Automation. That second label is doing more work than it looks like it is, and knowing what it does and does not tell you saves a lot of wasted searching.
Where the label appears
- Open Contacts CRM and click the contact.
- The Timeline tab is selected by default.
- Each row shows its actor next to the timestamp.
For a fuller tour of the feed itself, see use the contact timeline.
What System Automation actually means
It means a person did not do this. It does not mean an automation did.
Sixteen different sources all render as that one label, including:
- Automations
- Workflows and campaigns
- Booking workflows
- SMS AI agents and other AI-written activity
- AI voice agents and their post-call field updates
- Call flows and inbound callback flows
- Zapier, inbound webhooks, and other inbound lead sources
- Website follow-ups and anonymous visitor tracking
- Scheduling, CRM inbound sync, and general system events
They are not distinguished on the badge today. So the label narrows the field from "everyone with a login" to "one of sixteen systems", and no further.
Why that sends people to the wrong page
The word on the badge is Automation, and there is exactly one page in the product named Automations. The natural next move is to open it, check its Logs tab, and find nothing — or worse, find rows that say the automation skipped the record.
That page only covers automations. The workflows and campaigns under AI Voice & Chat, and SMS AI agents, have no log page at all, so their work is invisible there by design. See why the Automations Logs tab doesn't show everything that ran.
Read the row, not the badge
The row text is far more specific than the actor label. Use it to work out which engine to go and check.
| What the row says | Which system did it | Where to confirm |
|---|---|---|
| Campaign paused — contact replied | A workflow, pausing itself because the lead texted back | AI Voice & Chat → Workflows |
| Campaign stopped — reply handed to AI agent | A workflow handing the thread over | AI Voice & Chat → Workflows, then the agent |
| AI Agent enrolled, followed by AI Agent completed or AI Agent stopped | An SMS AI agent. The description names the agent in quotes | The thread in Conversations |
| An outbound text with no agent or campaign row around it | An automation, or a person who typed it | Automations → Logs, filtered to that contact |
| A booking confirmation or reminder | A booking workflow | Calendar → Workflow Logs |
| A field or lead-status change straight after a call | An AI voice agent's post-call analysis | AI Voice & Chat → Phone Logs |
| A contact created with no prior activity | An inbound lead source — a form, Zapier, or a webhook | Inbound lead logs |
When a row names an agent or a campaign in its description, that name is the fastest route to the truth. Two rows a second apart, one naming a workflow and one naming an agent, are usually a single handoff — see hand a cadence reply to an SMS AI agent.
Practical rules
- Do not treat a System Automation row as proof an automation ran. It is proof a system ran.
- Start at the timeline, not at a log page. The timeline is the only surface that merges every engine into one feed.
- Match on time, not on wording. When several systems fire off one inbound text, their rows land within the same second or two.
- Ask which engine could have done it, then open that engine's own screen. The table above covers the common cases.