---
id: ACTORS-CRM
title: CRM Actors
product_area: crm
revision: 2
status: draft
product_intent: proposed
source_sha:
  services-crm: a8d1364f1dd44b723bb5f9acba12f983e9ec8d69
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
actors:
  - id: ACT-CRM-001
    name: CRM Editor
    who: A staff member maintains contacts and organizations.
    goals:
      - Keep records useful
    can_broadly:
      - Create and update records
    represented_by:
      - crm.contacts.create
      - crm.contacts.update
      - crm.organizations.create
      - crm.organizations.update
    surfaces:
      - console
      - api
  - id: ACT-CRM-002
    name: CRM Reader
    who: A staff member reads records without authority to change them.
    goals:
      - Find people and organizations
    can_broadly:
      - Read records and permitted history
    represented_by:
      - crm.contacts.read
      - crm.organizations.read
      - crm.contacts.history
      - crm.organizations.history
    surfaces:
      - console
      - api
  - id: ACT-CRM-003
    name: CRM Administrator
    who: 'A staff member administers CRM classifications, regional configuration and record safeguards.'
    goals:
      - Maintain workspace configuration
      - Maintain geographic grouping and assignment policy
    can_broadly:
      - 'Manage types, archive records and control locks'
      - Manage regions and apply regional policy to existing records
    represented_by:
      - crm.contacts.delete
      - crm.contacts.archive
      - crm.contacts.lock
      - crm.contacts.unlock
      - crm.organizations.delete
      - crm.organizations.archive
      - crm.contact-roles.update
      - crm.contact-types.update
      - crm.affiliation-types.update
      - crm.address-types.update
      - crm.phone-number-types.update
      - crm.organization-types.update
      - crm.regions.read
      - crm.regions.create
      - crm.regions.update
      - crm.regions.delete
      - crm.regions.bulk
      - crm.regions.recalculate
    surfaces:
      - console
      - api
  - id: ACT-CRM-004
    name: Data Importer
    who: An authorized integration imports CRM records through data jobs.
    goals:
      - Bring external records into CRM
    can_broadly:
      - Submit bulk record work
    represented_by:
      - crm.contacts.bulk
      - crm.organizations.bulk
    surfaces:
      - job
      - api
  - id: ACT-CRM-005
    name: CRM System
    who: Rhythm maintains related records and evaluates organization compliance.
    goals:
      - Keep related records consistent
    can_broadly:
      - 'Reconcile affiliations, roles and compliance'
    represented_by:
      - system (service execution; no independent user permission key)
    surfaces:
      - job
      - api
  - id: ACT-CRM-006
    name: Task Contributor
    who: A staff member manages assigned work and reserves available queue or role-offered tasks.
    goals:
      - Complete personal and shared work with clear responsibility
    can_broadly:
      - 'Reserve shared work, return it and make closing decisions'
    represented_by:
      - crm.tasks.read
      - crm.tasks.update
      - crm.task_queue_operations (responsibility)
    surfaces:
      - console
      - api
    status: draft
    product_intent: proposed
    provenance: observed
    source: services-crm:modules/tasks/aws/api/tasks.routes.ts:tasksRoutes
    source_sha:
      services-crm: a8d1364f1dd44b723bb5f9acba12f983e9ec8d69
      react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
  - id: ACT-CRM-007
    name: Workflow Action Engine
    who: A registered service delegates application work through CRM task creation and state-changing actions.
    goals:
      - Create one task per workflow creation step and apply later actions according to state
    can_broadly:
      - 'Delegate work to users or roles and update its due day or closing state'
    represented_by:
      - trusted service invocation (crm-tasks-service-invoke; catalogued task keys are not user-authority checks)
    surfaces:
      - api
      - job
    status: draft
    product_intent: proposed
    provenance: observed
    source: services-crm:modules/tasks/aws/api/tasks-service.routes.ts:tasksServiceRoutes
    source_sha:
      services-crm: a8d1364f1dd44b723bb5f9acba12f983e9ec8d69
  - id: ACT-CRM-008
    name: Duplicate Review Staff
    who: A staff member assesses suggested pairs and records whether the identities are different or the same.
    goals:
      - Resolve questionable duplicate identities
    can_broadly:
      - 'Inspect suggestions, dismiss false matches, restore review and confirm known duplicates'
    represented_by:
      - crm.duplicates.read
      - crm.duplicates.review
    surfaces:
      - console
      - api
    source_sha:
      services-crm: a8d1364f1dd44b723bb5f9acba12f983e9ec8d69
      react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
  - id: ACT-CRM-009
    name: Record Quality Administrator
    who: >-
      An administrator controls duplicate configuration and prepares and executes contact or organization
      combinations.
    goals:
      - Combine repeated identities with reviewable attribution
    can_broadly:
      - >-
        Manage matching settings and re-checks, review previews, execute combinations, inspect outcomes and
        explain authorized creation exceptions
    represented_by:
      - crm.duplicates.configure
      - crm.contacts.merge
      - crm.organizations.merge
      - crm.merges.read
      - crm.contacts.create-despite-duplicate-block
      - crm.organizations.create-despite-duplicate-block
    surfaces:
      - console
      - api
    source_sha:
      services-crm: a8d1364f1dd44b723bb5f9acba12f983e9ec8d69
      react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
  - id: ACT-CRM-010
    name: Portal Registrant
    who: A person registering through Platform can respond to existing-contact suggestions supplied by CRM.
    goals:
      - Connect registration to the appropriate existing person
    can_broadly:
      - Accept or reject suggested contacts during registration
    represented_by:
      - Platform portal sign-up (no CRM permission key)
    surfaces:
      - portal
    source_sha:
      services-crm: a8d1364f1dd44b723bb5f9acba12f983e9ec8d69
      react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
evidence:
  - 'services-crm at 7ea48a414c42eade10d60753b8bcc323b1dd726f: aws/crm.service.ts permission catalogue.'
  - >-
    services-crm:aws/crm.service.ts:RegionsPermissions; regional administrator extension examined at the
    pinned regional source.
---

# CRM Actors

CRM readers find information, editors maintain records, and administrators manage classifications and protections. Integrations submit bulk work; Rhythm performs the related updates that saves and scheduled processing require.

The actor groups describe responsibilities. Their permission keys identify the authority used by each workflow.
