Recipe — Auto-close inactive Done conversations
Every night, sweep the inbox: find Done conversations that have been untouched for 14 days, archive them. Keeps the active workspace tidy without manual review.
What this rule does
- Trigger: Schedule — every day at 02:00.
- Condition: Conversation is in Done status, with no activity for 14+ days.
- Action: Archive the conversation (move to Archived status — Atender’s terminal “resolved” state).
A Done conversation is not terminal — a customer reply reopens it. Archive is terminal: archived conversations don’t reappear in Active queues even if the customer writes again. (A new message creates a new conversation linked to the contact.)
Build it
- 1 — Trigger —
Schedule— every day at 02:00 (workspace timezone) - 2 — Condition —
conversation.status equals done - 3 — Condition (AND) —
conversation.last_activity_at less than 14 days ago - 4 — Branch —
Always - 5 — Action —
Update status→archived
Simulate first — really
This rule modifies many conversations at once on its first run. Always simulate before enabling.
- Open the rule and click Simulate Execution.
- Pick a scope: “All conversations from the last 90 days.”
- Run. Atender returns the list of conversations that would be archived on the next 02:00 run.
- Spot-check several. They should all be Done conversations with no recent activity. If anything in the list is actually still in progress (e.g., a status was set to Done by mistake), fix that conversation manually before enabling the rule.
If the simulation looks reasonable, enable the rule.
Variants
- Different inactivity windows by tier. VIPs get 30 days, everyone else gets 14. Use multiple branches:
If contact.customer_level = VIP AND last_activity > 30d → archive; Else if last_activity > 14d → archive. - Tag before archiving. If you want a clear audit trail, add a tag like
auto-archivedfirst: action 1 = Add tagauto-archived, action 2 = Update status archived. - Archive with reason. Some teams add a final internal note before archiving: action 1 = Add note “Auto-archived after 14 days inactive,” action 2 = Update status archived.
- Different schedule. Weekends-only sweeping (Saturdays at 03:00) works for teams that want the inbox clean before Monday but don’t want surprise Monday-morning archive notifications.
Verify it worked
The morning after the rule’s first scheduled run, open the inbox filter status = archived AND last_status_change_at = today. The list should be the same as the simulation produced. Open a few and confirm they’re truly inactive Done conversations.
Troubleshooting
-
Symptom: Rule didn’t run at the scheduled time. Fix: Confirm the rule is enabled. Confirm the schedule’s timezone is correct (timezone issues are the #1 cause of “didn’t run when I expected”). Check Manual Executions — if there’s no entry for today, the trigger didn’t fire.
-
Symptom: Rule archived too much. Fix: Disable the rule immediately. Bulk-revert by filtering archived conversations and changing their status back. Then revisit the conditions — most often “less than 14 days ago” was wired backwards (should be:
last_activity_atis older than 14 days, equivalent toless than (now - 14 days)). -
Symptom: Rule archived a conversation that was waiting on a customer reply. Fix: Add a condition
conversation.engagement_state not equals pendingso anything still waiting on a customer doesn’t get archived. (See Conversation engagement states.)