distribution_groups
This table stores named notification or mailing groups that can be used across workflows such as Forms, RFIs, certifications, and project-level communications.
Purpose
The purpose of this table is to allow users to define reusable recipient groups for communication and workflow notifications instead of selecting individual recipients every time.
What this table does
- Stores named groups of recipients
- Supports tenant-wide or project-specific group definitions
- Improves consistency in notification routing
- Provides a reusable communication primitive for multiple modules
Why this table is defined
DirtView workflows frequently require sending the same updates to recurring sets of people. Distribution groups reduce repetitive setup and make workflow routing faster and more reliable.
Columns
| Column | Type | Required | Description | Example |
|---|---|---|---|---|
id |
uuid | Yes | Primary key for the distribution group | dgroup_001 |
tenant_id |
uuid | Yes | Tenant that owns the group | tenant_001 |
project_id |
uuid | No | Optional project if the group is project-specific | project_phoenix |
name |
text | Yes | Display name of the group | Project Phoenix RFI Review Team |
description |
text | No | Optional description of the group’s purpose | Recipients for RFI notifications on Project Phoenix |
is_active |
boolean | Yes | Whether this group can still be selected and used | true |
created_at |
timestamptz | Yes | Creation timestamp | 2026-04-08 09:00:00+00 |
Relationships
- tenant_id → tenants.id
- project_id → projects.id when project-specific
- id is referenced by distribution_group_members.group_id
How it is used
- Selected during form, RFI, and other workflow setup
- Used by notification services to resolve recipients
- Helps standardize communication patterns within a tenant or project
- Can be configured in project or form settings
Access and security
- Only authorized admins or PM-level users should manage groups
- Distribution groups may include external recipients, so membership should be reviewed carefully
- Changes to widely used groups may need audit visibility
Example scenarios
Scenario 1: Project RFI team
A project creates a group for PMs, superintendents, and architect contacts who should receive RFI notifications.
Scenario 2: Safety alerts group
A tenant-wide group is used for certification expiry and safety-related alerts.
Scenario 3: Form distribution default
A Daily Log template uses a preconfigured distribution group by default.
Notes and assumptions
- A group may be tenant-wide or tied to a single project
- Membership lives in
distribution_group_members, not in this table - Groups are reusable routing primitives across modules