User Signup Flow
This section illustrates the comprehensive system flow for first-time users signing up, from account creation through organization setup, product onboarding, payment, component configuration, to reaching the dashboard.
System Flow Diagram
Flow Details
1. User Signup
The system provides two signup methods for new users:
- Email/Password: Traditional username, email, and password signup with validation
- OAuth: Users can sign up using third-party OAuth providers
Both methods require basic validation (account doesn't exist, valid email format, etc.) before proceeding.
2. Organization Creation
After successful signup, all new users must create their first organization:
- Required Step: Organization creation is mandatory for first-time users
- Organization Details: Name, industry, size, and other relevant information
- 1:1 Mapping: Each user belongs to exactly one organization (critical constraint)
- Owner Role: User who creates the organization becomes the owner
Important: This is for first-time users only. Invited users skip this step and join an existing organization.
3. Product Sync Process
Once the organization is created, users must provide product information through one of two methods:
CSV Upload
- Upload a CSV file following CROW's required pattern
- Immediate validation of format and data
- Products are imported directly without scraping
- ID mapping consideration: Product IDs from CSV should match IDs used in web integration
Website URL
- Provide a URL to the company website containing products
- Background scraping task initiated
- CROW scrapes product catalog automatically
- Sitemap.xml analyzed for context
- Product data extracted and normalized
Product ID Concern: The product IDs in the system must match the IDs used when integrating the SDK. If the website doesn't expose internal product IDs publicly, developers may need to manually map IDs during integration.
4. Payment Flow
Users select components and configure billing:
Pricing Model:
- Base Price per Component: Each component (Web, Social, CCTV) has a base price
- Included Volume: Base price includes up to 1 million interactions and patterns
- Additional Volume: Extra charges for usage beyond included volume
- Validation: System enforces limits - stops saving raw data if limits exceeded
Components Available:
- Web Component (Phase 1 - current focus)
- Social Component (Phase 2)
- CCTV Component (Phase 3)
Users can select minimum 1 component, maximum 3 components.
5. Dynamic Component Configuration
Based on selected components, users configure each one (min 1, max 3 configurations):
Web Component Configuration
-
Package Installation Command
- Multiple options provided: npm, pnpm, bun, etc.
- Example:
npm install @crow/tracking-sdk
-
Code Snippet
- Multiple framework options: React, Electron, React Native, etc.
- Copy-paste integration code
- Pre-filled with generated API key
-
API Key Generation
- Unique API key generated for web component
- Displayed in code snippet
- Stored for later management
Social Component Configuration
-
Social Media Links
- User provides links to company social media accounts
- Platforms: Twitter/X, LinkedIn, Facebook, Instagram, etc.
- Used for direct scraping of social content
-
API Key Generation
- Unique API key generated for social component
- Used for authenticated access
CCTV Component Configuration
-
Bash Script Command
- Command to run on CCTV server
- Installs background daemon
- Configures streaming to Cloudflare Realtime SFU
- Daemon starts on system startup
-
API Key Generation
- Unique API key generated for CCTV component
- Embedded in bash script
6. Builder Pattern (Durable Objects)
The signup flow uses a Builder pattern implemented with Durable Objects:
Purpose:
- Maintains state across multi-step signup process
- Allows users to navigate back and forth
- Enables changes at any step before completion
- Fast state management without constant database writes
Why Durable Objects:
- Fast state access and updates
- Maintains consistency during navigation
- Easy to manage complex flow state
- Persists until flow completion
7. System Setup & Dashboard Access
After all configurations are complete:
- Background Setup: System sets up organization infrastructure
- Initial Processing: If product scraping was selected, processing begins
- Loading State: User sees setup progress
- Dashboard Redirect: Once ready, user is redirected to dashboard
8. Final Destination
User arrives at the Dashboard Home Page where they can:
- View organization overview
- Access chat interface
- Manage products
- View interactions and patterns
- Configure team members
- Manage settings and integrations
Invited User Flow
The invited user flow is simpler but crucial for multi-user organizations.
Invitation Process
-
Existing User Sends Invite
- User with appropriate permissions sends email invitation
- Validation checks if invitee already has an organization
- If validation passes, invitation email is sent
-
Invitee Receives Email
- Invitation email contains acceptance link
- Link leads to acceptance page
-
Acceptance Page
- Similar to GitHub repository access flow
- User must explicitly accept invitation
- Clear display of organization details
-
Modified Signup Flow
- User proceeds to standard signup (username, email, password)
- Organization creation step is skipped (1:1 mapping applies)
- User automatically joins inviting organization
- Redirected directly to dashboard
Key Difference: Invited users skip organization creation because the 1:1 User:Organization mapping means they automatically join the organization that invited them.
Related Flows
Returning User Login
Returning users with existing accounts follow a different flow:
- Standard login process
- Session validation
- Direct dashboard access
- No organization creation or configuration
Team Management
After signup, organization owners/admins can:
- Invite additional team members
- Set permission levels for users
- Manage team member access
- Remove team members if needed