Organization Management Specifications
Overview
Organizations are the core multi-tenant feature that allows teams, companies, and groups to manage surveys collectively while maintaining individual privacy and progress tracking.
Related Flows: Organization List | Create Organization | Organization Detail | Invite Member | Accept Invitation
Organization Structure
Organization Entity
- Name: Display name for the organization ✅
- Slug: URL-friendly unique identifier ✅
- Description: Optional description or mission statement ✅
- Logo: Optional organization logo (future) 🔲 Not yet
- Settings: Customizable preferences and limits ⚠️ Partial
- Subscription Tier: Free, Pro, Enterprise 🔲 Not yet
Membership Model
- Many-to-Many: Users can belong to multiple organizations ✅
- Roles: Hierarchical permission system ✅
- Invitations: Secure token-based invitation system ✅
- Activity Tracking: Monitor member engagement ✅
Roles & Permissions
Owner
- Full control over organization ✅
- Cannot be removed ✅
- Can transfer ownership ✅
- All admin permissions ✅
- Billing management (future) 🔲 Not yet
Admin
- Invite/remove members ✅
- Create/manage surveys ✅
- View all analytics ✅
- Manage organization settings ✅
- Cannot delete organization ✅
Member
- Take assigned surveys ✅
- View own results ✅
- View organization announcements ✅
- Cannot invite others ✅
- Cannot see other members' individual results ✅
Invitation System
Invitation Flow
- Admin generates invitation with specific role ✅
- System creates unique token (expires in 7 days) ✅
- Email sent to invitee ✅
- Invitee clicks link ✅
- Creates account or logs in ✅
- Automatically joined to organization ✅
Invitation Features
- Bulk Invites: Upload CSV or paste multiple emails ⚠️ Partial
- Role Assignment: Set role during invitation ✅
- Custom Message: Personalize invitation email ✅
- Tracking: See pending, accepted, expired invitations ✅
- Resend: Resend invitations that haven't been accepted ✅
- Revoke: Cancel pending invitations ✅
Organization Dashboard
Overview Section
- Total members (active/inactive) ✅
- Surveys created ✅
- Overall completion rate ✅
- Recent activity feed 🔲 Not yet
Members Section
- Member list with roles ✅
- Last active timestamps ✅
- Survey completion status ✅
- Bulk actions (remove, change role) ✅
- Search and filter capabilities ✅
Surveys Section
- List of organization surveys ✅
- Completion rates per survey ✅
- Average scores ✅
- Create new survey ✅
- Assign surveys to members ✅
Analytics Section
- Aggregate Maslow scores ✅
- Trend analysis over time ✅
- Department/team comparisons (via tags) 🔲 Not yet
- Export capabilities 🔲 Not yet
Organization Settings
General Settings
- Organization name and description ✅
- Logo and branding (future) 🔲 Not yet
- Default timezone ⚠️ Partial
- Language preferences ⚠️ Partial
Survey Settings
- Default reminder schedule ✅
- Mandatory vs optional surveys ✅
- Anonymous responses option (future) 🔲 Not yet
- Result visibility settings 🔲 Not yet
Member Settings
- Auto-approve invitations 🔲 Not yet
- Member directory visibility 🔲 Not yet
- Default member role 🔲 Not yet
- Onboarding survey assignment 🔲 Not yet
Notification Settings
- Admin notifications for completions 🔲 Not yet
- Weekly summary emails 🔲 Not yet
- Member milestone alerts 🔲 Not yet
- Low engagement warnings 🔲 Not yet
Multi-Organization Support
User Experience
- Organization switcher in navigation ✅
- Separate dashboards per organization ✅
- Combined personal view across all orgs ✅
- Organization-specific notifications 🔲 Not yet
Data Isolation
- Surveys scoped to organization ✅
- Results isolated per organization ✅
- No data leakage between orgs ✅
- Separate invitation pools ✅
Subscription Tiers
Free Tier
- 1 organization per user 🔲 Not yet
- Up to 10 members 🔲 Not yet
- 3 active surveys 🔲 Not yet
- Basic analytics 🔲 Not yet
- Email support 🔲 Not yet
Pro Tier ($X/month)
- Unlimited organizations 🔲 Not yet
- Up to 100 members 🔲 Not yet
- Unlimited surveys 🔲 Not yet
- Advanced analytics 🔲 Not yet
- Priority support 🔲 Not yet
- Custom branding 🔲 Not yet
Enterprise (Custom pricing)
- Unlimited everything 🔲 Not yet
- SSO integration 🔲 Not yet
- API access 🔲 Not yet
- SLA guarantee 🔲 Not yet
- Dedicated support 🔲 Not yet
- Custom features 🔲 Not yet
Administrative Features
Member Management
- Import members from CSV 🔲 Not yet
- Export member list 🔲 Not yet
- Bulk role changes ✅
- Activity monitoring ✅
- Engagement scoring 🔲 Not yet
Survey Assignment
- Assign to all members ✅
- Assign to specific groups ✅
- Set deadlines ✅
- Make surveys mandatory ✅
- Track compliance ✅
Compliance & Privacy
- GDPR compliance tools 🔲 Not yet
- Data retention policies 🔲 Not yet
- Member data export 🔲 Not yet
- Right to be forgotten 🔲 Not yet
- Audit logs 🔲 Not yet
Integration Points
Email Integration
- Invitation emails ✅
- Reminder emails ✅
- Summary reports 🔲 Not yet
- Welcome messages 🔲 Not yet
Future Integrations
- Slack notifications 🔲 Not yet
- Microsoft Teams 🔲 Not yet
- Google Workspace 🔲 Not yet
- HR systems (BambooHR, Workday) 🔲 Not yet
- SSO providers (Okta, Auth0) 🔲 Not yet
Organization Lifecycle
Creation
- User creates organization ✅
- Becomes owner automatically ✅
- Sets initial configuration ✅
- Invites first members ✅
Growth
- Add more members ✅
- Create surveys ✅
- Track engagement ✅
- Upgrade tier if needed 🔲 Not yet
Maintenance
- Regular member audits 🔲 Not yet
- Archive old surveys 🔲 Not yet
- Export reports 🔲 Not yet
- Manage subscriptions 🔲 Not yet
Deletion
- Owner initiates deletion ✅
- Confirmation required ✅
- Data export offered 🔲 Not yet
- 30-day recovery period 🔲 Not yet
- Permanent deletion ⚠️ Partial
Success Metrics
Adoption Metrics
- Organizations created per month
- Average members per organization
- Member invitation acceptance rate
- Organization retention rate
Engagement Metrics
- Active organizations (weekly/monthly)
- Surveys per organization
- Member participation rate
- Feature utilization
Business Metrics
- Free to paid conversion rate
- Average revenue per organization
- Churn rate
- Lifetime value
Survey Assignment and Recurrence
Core Principle
Users are invited to organizations, not to individual surveys. Once a member of an organization, the admin assigns them to specific surveys. An organization can have 10 different surveys, but each member may only be assigned a subset.
Survey Assignment Flow
- Admin creates a survey under the organization ✅
- Admin assigns members to the survey (individually or in bulk) ✅
- Assigned members see the survey in their dashboard and receive an email notification ✅
- Members take the survey within the allowed window ✅
- Admin tracks completion via the organization dashboard ✅
Assignment Rules
- A member can be assigned to multiple surveys ✅
- A survey can be assigned to all members or a specific subset ✅
- Assignment creates a record:
{ member_id, survey_id, assigned_at, assigned_by }✅ - Unassigning a member removes future obligations but preserves past responses ✅
Survey Recurrence (Frequency Configuration)
Each survey has a configurable recurrence interval set at the survey level:
| Setting | Description | Example |
|---|---|---|
recurrence_interval |
Time between survey attempts | 3 months, 6 months, 1 year |
recurrence_enabled |
Whether the survey repeats | true/false |
When a member completes a survey, the system calculates the next due date:
next_due_date = completed_at + recurrence_interval
For example: if a member takes a survey on March 26 with a 3-month interval, the next survey is due June 26.
Reminder System (Drip Campaign)
When a survey becomes due for a member, the system triggers a 3-message drip campaign:
| Reminder | Timing | Message |
|---|---|---|
| Reminder 1 | On due date | "Your [Survey Name] assessment is ready. Please complete it." |
| Reminder 2 | 3 days after due date (configurable) | "Reminder: Your [Survey Name] is still pending." |
| Reminder 3 | 7 days after due date (configurable) | "Final reminder: Please complete your [Survey Name] assessment." |
Reminder Rules
- Reminders are only sent after the due date, not before ✅
- If the member completes the survey at any point, remaining reminders are cancelled ✅
- Reminder intervals are configurable at the survey level (default: 0, 3, 7 days) ✅
- All reminders include a direct link to take the survey ✅
Overdue Flagging (Admin Escalation)
If a member has not completed a survey after all 3 reminders have been sent:
- The member is flagged as overdue in the organization dashboard ✅
- The admin sees a "Needs Attention" section with:
- Member name and email ✅
- Survey name ✅
- Days overdue ✅
- Number of reminders sent ✅
- The admin can:
- Send a manual reminder (custom message) ✅
- Extend the deadline (push the due date) ✅
- Waive the survey (mark as not required for this cycle) ✅
- Contact the member directly 🔲 Not yet
Data Model
survey_assignments:
id: string
survey_id: string
member_id: string (user_id)
organization_id: string
assigned_at: datetime
assigned_by: string (admin user_id)
status: "pending" | "completed" | "overdue" | "waived"
current_due_date: datetime | null
last_completed_at: datetime | null
next_due_date: datetime | null
reminders_sent: number (0, 1, 2, or 3)
last_reminder_at: datetime | null
survey (additional fields):
recurrence_enabled: boolean (default: false)
recurrence_interval_days: number (e.g., 90 for 3 months)
reminder_intervals: [0, 3, 7] (days after due date)
Admin Dashboard View
The organization detail page shows a "Survey Compliance" section:
| Member | Survey | Status | Due Date | Reminders Sent | Actions |
|---|---|---|---|---|---|
| Jane Doe | Community Impact | Completed | Mar 26 | 0 | View Results |
| John Smith | Community Impact | Overdue (5 days) | Mar 21 | 2/3 | Send Reminder, Extend |
| Maria Lopez | Community Impact | Pending | Jun 26 | 0 | -- |