28 actions, each bound to its table and run on StreamedETLWithFrontendProcess. Review writes nothing, and the Review and Result screens show standard summary lines (future and past tense, with OK, WARNING and ERROR). There are no custom dry-run forms and nothing is in the nav.
Table
Actions
Contact
Assign Owner, Auto-Assign, Add to List, Remove from List, Enroll in Sequence, Unenroll from Sequence, Log Activity, Recalculate Score, Merge Contacts, Find Duplicates, Create Deal, Erase Personal Data (admin), Send Email
Move Stage (stage list limited to the deal's pipeline), Mark Won, Mark Lost, Reopen, Clone, Assign Owner, Add Contact, Log Activity
Web lead
Convert to Contact
Sequence
Activate, Pause
Retired: reminders and overdue tasks (collaboration tasks and alerts replace them in P4), import contacts (core bulk load replaces it), the email-tracking process (delivery sync replaces it in P4), and the old standalone bulk and transfer processes.
Background runners: the sequence and scoring runners now page through records 200 at a time.
Send Email: shows a WARNING summary until P4 wires the transport.
Codex implemented this; Claude reviewed it and merged develop in. Conflict: auto-assign now delegates to CrmAutoAssign, and the standalone process metadata is gone.
## Summary
P2 part B (actions) of the qbit-crm 0.2.0 design:
- **28 actions**, each bound to its table and run on `StreamedETLWithFrontendProcess`. Review writes nothing, and the Review and Result screens show standard summary lines (future and past tense, with OK, WARNING and ERROR). There are no custom dry-run forms and nothing is in the nav.
| Table | Actions |
|---|---|
| Contact | Assign Owner, Auto-Assign, Add to List, Remove from List, Enroll in Sequence, Unenroll from Sequence, Log Activity, Recalculate Score, Merge Contacts, Find Duplicates, Create Deal, Erase Personal Data (admin), Send Email |
| Company | Assign Owner, Merge Companies, Find Duplicates, Log Activity |
| Deal | Move Stage (stage list limited to the deal's pipeline), Mark Won, Mark Lost, Reopen, Clone, Assign Owner, Add Contact, Log Activity |
| Web lead | Convert to Contact |
| Sequence | Activate, Pause |
- **Retired:** reminders and overdue tasks (collaboration tasks and alerts replace them in P4), import contacts (core bulk load replaces it), the email-tracking process (delivery sync replaces it in P4), and the old standalone bulk and transfer processes.
- **Background runners:** the sequence and scoring runners now page through records 200 at a time.
- **Send Email:** shows a WARNING summary until P4 wires the transport.
Codex implemented this; Claude reviewed it and merged develop in. Conflict: auto-assign now delegates to `CrmAutoAssign`, and the standalone process metadata is gone.
## Test plan
- [x] `./mvnw verify`: 407 tests, 0 failures; checkstyle, JaCoCo and guardrails pass
- [x] Every action runs Review then Result, its summary lines and data effects are asserted, and Review writes nothing
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
P2 part B (actions) of the qbit-crm 0.2.0 design:
StreamedETLWithFrontendProcess. Review writes nothing, and the Review and Result screens show standard summary lines (future and past tense, with OK, WARNING and ERROR). There are no custom dry-run forms and nothing is in the nav.Codex implemented this; Claude reviewed it and merged develop in. Conflict: auto-assign now delegates to
CrmAutoAssign, and the standalone process metadata is gone.Test plan
./mvnw verify: 407 tests, 0 failures; checkstyle, JaCoCo and guardrails pass🤖 Generated with Claude Code