Skip to content

CAP-CRM-ACT-009Preserve the baseline activity catalog without replacing customer choices

Markdown

CAP-CRM-ACT-009

Preserve the baseline activity catalog without replacing customer choices

Markdown
  • DocumentDraft
  • Product intentProposed
  • ImplementationObserved

KindCapabilityProduct areaCRMModuleActivities, Follow-ups and Task WorkRevision2

Read atservices-crm a8d1364freact-console baf6dae3

The Formal Contract

The narrative above explains; the sections below are authoritative — the rules, scenarios and tests this document binds.

Outcomes
Seven baseline categoriesProtected built-in classification codesCustomer changes retained during seed adoption
Surfaces
apijob
Intent sources
services-crm:docs/milestones/CRM-M8-activities-and-tasks.md#D-48services-crm:docs/migrations/activities/README.md#D10

Controls

23 controls apply, from the corpus control catalogue.

TC-AZ-001 TC-AZ-002 TC-AZ-003 TC-AZ-004 TC-AZ-005 TC-AZ-006 TC-DAT-001 TC-DAT-003 TC-IAM-001 TC-IAM-005 TC-IAM-006 TC-LOG-004 TC-LOG-005 TC-MON-001 TC-MON-002 TC-PI-001 TC-PI-002 TC-PI-003 TC-PI-004 TC-PI-005 TC-TEN-001 TC-TEN-002 TC-TEN-003

Permissions

KeyChecked atScope
crm.activity-types.updateapitenant
crm.activity-types.deleteapitenant

Business Rules

8 rules, 6 to be proved before approval. A rule's product intent is derived from its origin: 1 confirmed by a product decision, the rest inheriting this capability's proposed.

IdRuleKindEnforced atProvenance
01must prove
Proposed
The activities participant declares seven baseline activity types, while workspace-wide installation depends on Platform registering that participant.
no proof recorded yet
policyserviceobserved
02must prove
Confirmed
Baseline application adopts existing activity types without overwriting customer changes; deployment reconciliation belongs to Platform.
no proof recorded yet
policyservicetest
services-crm:modules/activities/tests/integration/services/persistence/activity-types.integration.spec.js#adopts a type the tenant already has under that id, leaving it as the tenant made it
03must prove
Proposed
Built-in activity types support deactivation but refuse deletion.
no proof recorded yet
validationservicetest
04must prove
Proposed
Rhythm controls each built-in type code and preserves it through edits; customer-created types have no built-in code.
no proof recorded yet
invariantservice, databasetest
services-crm:modules/activities/tests/integration/services/persistence/activity-types.integration.spec.js#refuses a change of system code in the database too, whatever writes the row
05must prove
Proposed
A workspace cannot store two activity types with the same built-in code.
no proof recorded yet
invariantdatabasetest
services-crm:modules/activities/tests/integration/db/activities.table.integration.spec.js#refuses a second type of the tenant with the same system code
06must prove
Proposed
The built-in Call and Email types require direction and reject configuration changes that hide it or make it optional.
no proof recorded yet
validationservice, databasetest
services-crm:modules/activities/tests/integration/services/persistence/activity-types.integration.spec.js#refuses to make the Call type’s direction anything but required, saying why
07
Proposed
Baseline Call outcomes include Connected, Left voicemail, No answer, Busy and Wrong number, and the baseline Meeting suggests a seven-day follow-up.
policyservicedocumented
08
Proposed
Activity-type imports preserve built-in codes and adopt matching built-in types under their established identifiers.
policyservicetest

Scenarios

IdGivenWhenThenProvenance
01A workspace is subject to the declared baseline catalog.List its activity types after provisioning.The acceptance test expects all seven built-in types; actual provisioning depends on Platform integration.test

Edge Cases

IdGivenWhenThenProvenance
02A workspace already holds customized baseline types.Apply a missing baseline seed.Existing matching entries are adopted without replacing customer values.documented

The Markdown files under specs/ in rhythmsoftware/rhythm-v2-docs are the canonical source of truth. This reader is a generated, read-only projection of them.