User Access Guide - customers.dev
Complete guide to authentication, authorization, and accessing the customers.dev platform.
Table of Contents
- Overview
- Authentication
- Organizations & Teams
- Role-Based Access Control (RBAC)
- API Access
- Getting Started
- Common Workflows
Overview
customers.dev uses a secure, multi-tenant architecture where:
- Authentication is handled by Clerk (OAuth, email/password, SSO)
- Organizations provide workspace isolation for teams
- Role-Based Access Control (RBAC) ensures proper permissions
- API Keys enable programmatic access to your data
Authentication
User Registration & Login
Supported Methods:
- Email & Password
- Google OAuth
- GitHub OAuth
- Microsoft OAuth
- SAML SSO (Enterprise plans)
- Magic Links
Sign Up Flow:
- Visit
https://customers.dev/sign-up - Choose authentication method
- Complete verification (email confirmation)
- Create or join an organization
Sign In Flow:
- Visit
https://customers.dev/sign-in - Enter credentials or use OAuth
- Access your organization dashboard
Session Management
- Session Duration: 7 days (configurable)
- Auto-Refresh: Sessions refresh automatically while active
- Multi-Device: Access from multiple devices simultaneously
- Security: Sessions invalidate on password change
Organizations & Teams
Organization Structure
Every user must belong to at least one organization. Organizations provide:
- Data Isolation: Your customers, contacts, and lists are private to your org
- Team Collaboration: Invite team members with specific roles
- Billing Scope: Subscriptions and usage limits are per-organization
- API Keys: Each organization has its own API keys
Creating an Organization
First-Time Users:
- Automatically prompted to create an organization during signup
- Required fields: Organization name
- Default role: Owner
Existing Users:
- Navigate to organization switcher (top-left dropdown)
- Click "Create New Organization"
- Enter organization name
- Confirm creation
Organization Plans
| Plan | Max Members | Max Customers | API Rate Limit | Price |
|---|---|---|---|---|
| Free | 5 | 1,000 | 1,000/hour | $0/mo |
| Pro | 10 | 10,000 | 10,000/hour | $49/mo |
| Enterprise | 100+ | Unlimited | Custom | Custom |
Switching Organizations
Users can belong to multiple organizations:
- Click organization name (top-left)
- Select from dropdown list
- Dashboard updates to show selected org's data
Role-Based Access Control (RBAC)
Role Hierarchy
customers.dev uses a hierarchical role system where higher roles inherit lower role permissions:
| Role | Level | Description |
|---|---|---|
| Viewer | 1 | Read-only access to customers, contacts, and lists |
| Member | 2 | Can create and edit customers, contacts, and lists |
| Admin | 3 | Can delete records and manage API keys |
| Owner | 4 | Full control including member management and org settings |
Permission Matrix
| Operation | Viewer | Member | Admin | Owner |
|---|---|---|---|---|
| View customers/contacts/lists | ✅ | ✅ | ✅ | ✅ |
| Create customers/contacts/lists | ❌ | ✅ | ✅ | ✅ |
| Edit customers/contacts/lists | ❌ | ✅ | ✅ | ✅ |
| Delete customers/contacts/lists | ❌ | ❌ | ✅ | ✅ |
| Invite team members | ❌ | ❌ | ✅ | ✅ |
| Remove team members | ❌ | ❌ | ✅ | ✅ |
| Change member roles | ❌ | ❌ | ✅ | ✅ |
| Manage API keys | ❌ | ❌ | ✅ | ✅ |
| Update org settings | ❌ | ❌ | ❌ | ✅ |
| Change org plan | ❌ | ❌ | ❌ | ✅ |
| Delete organization | ❌ | ❌ | ❌ | ✅ |
Managing Team Members
Inviting Members (Admin/Owner only):
- Navigate to Settings → Team Members
- Click "Invite Member"
- Enter email address
- Select role: Viewer, Member, or Admin
- Send invitation
Accepting Invitations:
- Check email for invitation link
- Click "Accept Invitation"
- Sign in or create account
- Access organization immediately
Changing Member Roles (Admin/Owner only):
- Navigate to Settings → Team Members
- Find member in list
- Click role dropdown
- Select new role
- Confirm change
Removing Members (Admin/Owner only):
- Navigate to Settings → Team Members
- Find member in list
- Click "Remove" button
- Confirm removal
Important Notes:
- Owners cannot be removed (must transfer ownership first)
- You cannot change your own role
- Removing a member immediately revokes access
API Access
Overview
Programmatic access to customers.dev requires API keys. API keys are scoped to your organization and have specific permissions.
Creating API Keys
Requirements:
- Admin or Owner role
- Navigate to Settings → API Keys
Creation Steps:
- Click "Create API Key"
- Enter descriptive name (e.g., "Production Server", "Analytics Pipeline")
- Select permissions:
customers:read- Read customer datacustomers:write- Create/update customerscontacts:read- Read contact datacontacts:write- Create/update contactslists:read- Read listslists:write- Create/update lists
- Set rate limits (optional):
- Requests per minute (default: 60)
- Requests per hour (default: 1,000)
- Requests per day (default: 10,000)
- Set expiration (optional):
- Never expires (default)
- Custom expiration date
- Click "Create"
Security Notice: ⚠️ The API key is shown ONLY ONCE. Copy and store it securely immediately.
API Key Format
sk_test_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxsk_- Secret key prefixtest_/live_- Environment indicator- 32 random characters
Using API Keys
Authentication Header:
curl -H "Authorization: Bearer sk_test_xxxx..." \
https://api.customers.dev/v1/customersBase URL:
- Test:
https://api.customers.dev/v1 - Production:
https://api.customers.dev/v1
API Key Management
Viewing API Keys:
- Navigate to Settings → API Keys
- See list of all keys with:
- Name
- Key prefix (e.g.,
sk_test_xxxx...) - Permissions
- Last used timestamp
- Status (Active/Revoked/Expired)
Revoking API Keys:
- Navigate to Settings → API Keys
- Find key to revoke
- Click "Revoke"
- Confirm revocation
- Key immediately stops working
Updating Permissions:
- Navigate to Settings → API Keys
- Find key to update
- Click "Edit Permissions"
- Toggle permissions
- Save changes
Updating Rate Limits:
- Navigate to Settings → API Keys
- Find key to update
- Click "Edit Rate Limits"
- Adjust limits
- Save changes
Rate Limiting
Limits:
- Per Minute: 60 requests (default)
- Per Hour: 1,000 requests (default)
- Per Day: 10,000 requests (default)
Response Headers:
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 45
X-RateLimit-Reset: 1640000000Rate Limit Exceeded:
HTTP 429 Too Many Requests
{
"error": "Rate limit exceeded",
"limit": 60,
"used": 60,
"resetAt": 1640000000
}Handling Rate Limits:
- Implement exponential backoff
- Cache responses when possible
- Batch operations
- Upgrade plan for higher limits
API Key Security Best Practices
✅ DO:
- Store keys in environment variables
- Use separate keys for development/production
- Rotate keys regularly (every 90 days)
- Use minimum required permissions
- Revoke unused keys immediately
- Monitor API key usage
❌ DON'T:
- Commit keys to version control
- Share keys between environments
- Use overly broad permissions
- Hardcode keys in application code
- Expose keys in client-side code
- Ignore usage anomalies
Getting Started
Step 1: Create Account
- Visit
https://customers.dev/sign-up - Choose authentication method
- Verify email address
- Complete profile
Step 2: Create Organization
- Enter organization name
- Select plan (Free to start)
- Confirm creation
- You're assigned Owner role
Step 3: Invite Team Members (Optional)
- Navigate to Settings → Team Members
- Invite colleagues with appropriate roles
- They'll receive email invitations
Step 4: Add Your First Customer
Via Dashboard:
- Click "Customers" in sidebar
- Click "Add Customer"
- Fill in details:
- Company name (required)
- Domain
- Status (Lead/Customer/Churned)
- Industry, size, etc.
- Click "Save"
Via API:
curl -X POST https://api.customers.dev/v1/customers \
-H "Authorization: Bearer sk_test_..." \
-H "Content-Type: application/json" \
-d '{
"name": "Acme Corp",
"domain": "acme.com",
"status": "customer"
}'Step 5: Add Contacts
Via Dashboard:
- Open customer profile
- Click "Add Contact"
- Fill in details:
- First name, last name (required)
- Email, phone
- Title, LinkedIn
- Mark as primary contact (optional)
- Click "Save"
Via API:
curl -X POST https://api.customers.dev/v1/contacts \
-H "Authorization: Bearer sk_test_..." \
-H "Content-Type: application/json" \
-d '{
"customerId": "cust_abc123",
"firstName": "John",
"lastName": "Doe",
"email": "john@acme.com",
"isPrimaryContact": true
}'Step 6: Create Lists
Via Dashboard:
- Click "Lists" in sidebar
- Click "Create List"
- Enter details:
- Name (required)
- Description
- Type: Waitlist/Prospects/Newsletter/Custom
- Click "Create"
- Add customers/contacts to list
Common Workflows
Workflow 1: Onboarding a New Customer
-
Create customer record
- Add company information
- Set status to "lead"
-
Add primary contact
- Create contact for main decision maker
- Mark as primary contact
-
Add to relevant lists
- Add to "Active Prospects" list
- Add to industry-specific list
-
Track engagement
- Update notes as communication happens
- Move through sales stages
Workflow 2: Team Collaboration
-
Owner invites team members
- Sales team: Member role (can edit)
- Analytics team: Viewer role (read-only)
- Sales managers: Admin role (full access)
-
Members access shared data
- Everyone sees same customers/contacts
- Edit permissions based on role
-
Admins manage API keys
- Create keys for integrations
- Monitor usage
- Revoke when needed
Workflow 3: API Integration
-
Admin creates API key
- Name: "CRM Sync"
- Permissions: customers:read, customers:write, contacts:write
- Rate limit: 100/minute
-
Store key securely
export CUSTOMERS_API_KEY="sk_live_..." -
Sync data
import requests headers = { "Authorization": f"Bearer {os.environ['CUSTOMERS_API_KEY']}", "Content-Type": "application/json" } # Fetch customers response = requests.get( "https://api.customers.dev/v1/customers", headers=headers ) customers = response.json() -
Monitor usage
- Check API key usage stats in dashboard
- Set up alerts for rate limit approach
Workflow 4: Managing Customer Lists
-
Create segmented lists
- "Enterprise Customers" (>1000 employees)
- "At-Risk Customers" (low engagement)
- "Expansion Opportunities" (growth potential)
-
Add customers to lists
- Manually via dashboard
- Bulk import via API
- Automated via webhooks (future)
-
Use lists for campaigns
- Export list for email campaigns
- Track which lists convert best
- Update list membership as status changes
Support & Resources
Documentation
- API Reference: https://docs.customers.dev/api
- Guides: https://docs.customers.dev/guides
- Changelog: https://docs.customers.dev/changelog
Support Channels
- Email: help@do.dev
- Contact Page: https://do.dev/contact
- Chat: Available in dashboard (Pro+ plans)
Security & Compliance
- Security Policy: https://customers.dev/security
- Privacy Policy: https://customers.dev/privacy
- Terms of Service: https://customers.dev/terms
- SOC 2 Compliance: Available for Enterprise customers
Emergency Contacts
- Security Issues: security@customers.dev
- Data Deletion Requests: privacy@customers.dev
- Billing Issues: billing@customers.dev
Appendix: Permission Details
READ Permissions
customers:read
- View customer details
- Search customers
- List customers
- Export customer data
contacts:read
- View contact details
- Search contacts
- List contacts
- Export contact data
lists:read
- View list details
- See list members
- Search lists
WRITE Permissions
customers:write
- Create customers
- Update customer information
- Add custom fields
- Update customer status
contacts:write
- Create contacts
- Update contact information
- Set primary contact
- Add contact notes
lists:write
- Create lists
- Update list details
- Add members to lists
- Remove members from lists
- Delete lists
Frequently Asked Questions
Authentication
Q: Can I use SSO with my organization? A: Yes, SAML SSO is available on Enterprise plans. Contact sales@customers.dev.
Q: How do I reset my password? A: Click "Forgot Password" on the login page and follow the email instructions.
Q: Can I require 2FA for my organization? A: Yes, Owners can enable 2FA requirement in Settings → Security.
Organizations
Q: Can I be in multiple organizations? A: Yes, you can be a member of unlimited organizations with the same email address.
Q: How do I transfer organization ownership? A: Navigate to Settings → Team, find the new owner, change their role to Owner. You'll be downgraded to Admin.
Q: What happens if I delete my organization? A: All data (customers, contacts, lists, API keys) is permanently deleted after 30 days.
Roles & Permissions
Q: Can Members see other team members? A: Yes, all roles can view the team member list, but only Admins/Owners can modify it.
Q: What's the difference between Admin and Owner? A: Owners have full control including billing, plan changes, and organization deletion. Admins can manage members and API keys but not organization settings.
Q: Can I customize permission levels? A: Custom roles are available on Enterprise plans. Contact sales@customers.dev.
API Keys
Q: How many API keys can I create? A: Unlimited API keys per organization.
Q: Can I regenerate a lost API key? A: No, API keys cannot be retrieved after creation. Revoke the old key and create a new one.
Q: Do API keys expire? A: Only if you set an expiration date during creation. Otherwise, they're valid until revoked.
Q: Can I use the same API key across multiple servers? A: Yes, but we recommend separate keys per integration for better security and monitoring.
Last Updated: January 2025 Version: 1.0.0