feat(actions): CRM record actions on the standard streamed ETL #11

Merged
KofTwentyTwo merged 3 commits from feature/record-actions into develop 2026-10-14 18:06:13 +00:00
KofTwentyTwo commented 2026-10-14 18:03:40 +00:00 (Migrated from github.com)

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

  • ./mvnw verify: 407 tests, 0 failures; checkstyle, JaCoCo and guardrails pass
  • Every action runs Review then Result, its summary lines and data effects are asserted, and Review writes nothing

🤖 Generated with Claude Code

## 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)
Sign in to join this conversation.