Adding and Removing Duda Users | OpsBlu Docs

Adding and Removing Duda Users

How to add and remove team members in Duda. Covers invitation workflows, role assignment, access revocation, and user lifecycle management for analytics.

Complete guide to managing team member accounts in Duda, including adding collaborators, adjusting permissions, and offboarding staff members.

Prerequisites

To manage team members, you must:

  • Be the account owner, OR
  • Have Staff Manager or Admin permissions
  • Have an active Duda plan (Team plan or higher for multiple users)

Plan Limits:

  • Basic: 1 user (account owner only)
  • Team: Up to 4 team members
  • Agency: Up to 10 team members
  • White Label: Up to 50 team members
  • Custom: Unlimited team members

Adding Team Members to Duda

Method 1: Dashboard Team Management

Best for: Adding individual team members, general user management

Step 1: Access Team Settings

Dashboard → Settings (gear icon) → Team → Team Members

Screenshot reference: /screenshots/duda-team-settings.png

Step 2: Invite New Team Member

  1. Click "Invite Team Member" button
  2. Enter team member information:

Required Fields:

  • Email address: Must be unique (not already a team member)
  • First name: Team member's first name
  • Last name: Team member's last name

Optional Fields:

  • Phone number: For notifications
  • Language: Interface language preference

Step 3: Assign Role and Permissions

Select role from dropdown:

  • Admin: Full account access (except billing)
  • Staff Manager: Manage team and site permissions
  • Designer: Create and edit sites
  • Developer: Code access and advanced features
  • Site Contributor: Limited editing per site
  • Client: View-only or specific site access

See Roles & Permissions for detailed role descriptions.

Step 4: Assign Site Access (Optional)

For non-Admin roles:

  • Select specific sites team member can access
  • Choose permission level per site:
    • Full Edit: Complete site editing
    • Limited Edit: Content only
    • Stats Only: Analytics access

Site group assignments:

  • Assign to site groups for bulk access
  • Useful for agencies managing client sites

Step 5: Send Invitation

  1. Review invitation details
  2. Click "Send Invitation"
  3. Email sent to team member containing:
    • Link to accept invitation
    • Instructions to create password
    • Access details

Invitation status: Shows "Pending" until accepted

Invitation expiration: 7 days (can be resent)

Step 6: Team Member Accepts Invitation

Team member receives email and:

  1. Clicks invitation link
  2. Creates Duda account (if new user)
  3. Sets password (minimum 8 characters)
  4. Verifies email (confirmation link)
  5. Accesses dashboard with assigned permissions

Method 2: Client Access (Site-Specific)

Best for: Giving clients access to their specific site

Client Portal Access

Select Site → Settings → Client Permissions → Invite Client

Client invitation:

  1. Enter client email
  2. Select permissions:
    • View Stats: Analytics only
    • Edit Content: Content updates
    • Full Edit: Complete site editing
    • No Access: Revoke access
  3. Send invitation

Client features:

  • Simplified interface
  • Site-specific access only
  • Can't access other sites
  • Mobile app access available

Method 3: API-Based Team Management

Best for: White label partners, automated user provisioning

API Endpoint

POST https://api.duda.co/api/accounts/{{account_name}}/team/members
Authorization: Basic {{base64_credentials}}
Content-Type: application/json

Request Body

{
  "email": "john.doe@agency.com",
  "first_name": "John",
  "last_name": "Doe",
  "role": "DESIGNER",
  "site_permissions": [
    {
      "site_name": "site-12345",
      "permissions": ["EDIT", "PUBLISH"]
    }
  ]
}

JavaScript Example

const axios = require('axios');

async function addDudaTeamMember() {
  const credentials = Buffer.from(
    `${API_USER}:${API_PASSWORD}`
  ).toString('base64');

  try {
    const response = await axios.post(
      'https://api.duda.co/api/accounts/your-account/team/members',
      {
        email: 'john.doe@agency.com',
        first_name: 'John',
        last_name: 'Doe',
        role: 'DESIGNER',
        site_permissions: [
          {
            site_name: 'site-12345',
            permissions: ['EDIT', 'PUBLISH']
          }
        ]
      },
      {
        headers: {
          'Authorization': `Basic ${credentials}`,
          'Content-Type': 'application/json'
        }
      }
    );

    console.log('Team member added:', response.data);
  } catch (error) {
    console.error('Error:', error.response.data);
  }
}

Python Example

import requests
import base64

def add_duda_team_member():
    credentials = base64.b64encode(
        f"{API_USER}:{API_PASSWORD}".encode()
    ).decode()

    headers = {
        'Authorization': f'Basic {credentials}',
        'Content-Type': 'application/json'
    }

    data = {
        'email': 'john.doe@agency.com',
        'first_name': 'John',
        'last_name': 'Doe',
        'role': 'DESIGNER',
        'site_permissions': [
            {
                'site_name': 'site-12345',
                'permissions': ['EDIT', 'PUBLISH']
            }
        ]
    }

    response = requests.post(
        'https://api.duda.co/api/accounts/your-account/team/members',
        json=data,
        headers=headers
    )

    return response.json()

Managing Existing Team Members

View Current Team

Access team list:

Dashboard → Settings → Team → Team Members

Information displayed:

  • Name and email
  • Role assignment
  • Site access count
  • Last login date
  • Active/Pending status

Edit Team Member Permissions

Change Role

  1. Navigate to: Settings → Team → Team Members
  2. Click team member name
  3. Select new role from dropdown
  4. Modify site access if needed
  5. Click "Save Changes"

When to change roles:

  • Promotion or role change
  • Project completion
  • Temporary elevated access
  • Reducing permissions

Modify Site Access

Add site access:

  1. Edit team member
  2. Site Access section
  3. Click "Add Sites"
  4. Select sites and permission level
  5. Save

Remove site access:

  1. Edit team member
  2. Find site in access list
  3. Click "Remove"
  4. Confirm removal

Bulk site assignment:

  • Use site groups
  • Assign entire group at once
  • Modify group membership to update access

Resend Invitation

For pending invitations:

Settings → Team → Team Members → Find pending user → Resend Invitation

Use cases:

  • Invitation expired (7 days)
  • Email not received
  • Invitation link broken

Temporarily Disable Access

Suspend without deletion:

  1. Edit team member
  2. Status: Change to "Inactive"
  3. Save

Effects:

  • Cannot log in
  • Retains account and permissions
  • Can be reactivated
  • No email sent

Use for:

  • Temporary leave
  • Investigation periods
  • Seasonal workers
  • Between projects

Removing Team Members from Duda

Pre-Removal Checklist

Before removing a team member:

  • Transfer site ownership if they're primary owner
  • Reassign active projects to other team members
  • Export their work if needed
  • Document removal reason for records
  • Notify stakeholders if applicable
  • Review recent activity for any issues
  • Check client sites they managed

Method 1: Remove from Dashboard

Step 1: Navigate to Team Settings

Settings → Team → Team Members

Step 2: Select Team Member

  1. Find team member in list
  2. Click team member name or Actions menu

Step 3: Remove Team Member

  1. Click "Remove Team Member" button (bottom of edit screen)
  2. Confirmation dialog appears:
    Are you sure you want to remove [Name]?
    This will revoke all access immediately.
    Site ownership will need to be transferred.
    
  3. Click "Remove" to confirm

Step 4: Transfer Site Ownership

If team member owned sites:

  1. System prompts for ownership transfer
  2. Select new owner from dropdown
  3. Apply to all sites or select individually
  4. Confirm transfer

What happens:

  • Access revoked immediately
  • Cannot log into account
  • Email notifications stop
  • Site ownership transferred
  • Activity history preserved

Method 2: Remove via API

API Endpoint

DELETE https://api.duda.co/api/accounts/{{account_name}}/team/members/{{member_email}}
Authorization: Basic {{base64_credentials}}

Example

async function removeDudaTeamMember(memberEmail) {
  const credentials = Buffer.from(
    `${API_USER}:${API_PASSWORD}`
  ).toString('base64');

  try {
    await axios.delete(
      `https://api.duda.co/api/accounts/your-account/team/members/${encodeURIComponent(memberEmail)}`,
      {
        headers: {
          'Authorization': `Basic ${credentials}`
        }
      }
    );

    console.log('Team member removed successfully');
  } catch (error) {
    console.error('Error:', error.response.data);
  }
}

Method 3: Bulk Team Member Removal

Via Dashboard (one at a time):

  1. Settings → Team → Team Members
  2. Select first team member
  3. Remove and transfer sites
  4. Repeat for each member
  5. Document each removal

Via API (script):

async function bulkRemoveTeamMembers(emails) {
  for (const email of emails) {
    try {
      await removeDudaTeamMember(email);
      console.log(`Removed: ${email}`);

      // Rate limiting
      await new Promise(resolve => setTimeout(resolve, 1000));
    } catch (error) {
      console.error(`Failed to remove ${email}:`, error.message);
    }
  }
}

// Usage
bulkRemoveTeamMembers([
  'former-employee1@company.com',
  'former-employee2@company.com'
]);

Special Scenarios

Removing Account Owner

Account owner cannot be removed directly

To change owner:

  1. Add new owner as team member
  2. Upgrade to Admin role
  3. Contact Duda support to transfer account ownership
  4. Billing transfers to new owner
  5. Old owner becomes regular team member
  6. Remove old owner if needed

Required for:

  • Selling agency
  • Ownership change
  • Company restructuring

Client Access Revocation

Remove client from specific site:

Select Site → Settings → Client Permissions → Find client → Remove Access

Effects:

  • Can't access site editor
  • Can't view stats
  • Email notifications stop
  • No data deleted

Use when:

  • Project completed
  • Client switched to different platform
  • Contract ended
  • Client requested removal

Emergency Access Removal

Security incident response:

  1. Immediately disable account: Set to Inactive
  2. Change site passwords: If applicable
  3. Review recent activity: Check Site History
  4. Audit changes made: Review published content
  5. Reset API credentials: If they had access
  6. Remove from integrations: Third-party tools
  7. Document incident: Security log

Post-incident:

  • Investigate what happened
  • Review permissions of all team
  • Implement additional security measures
  • Update access policies

Contractor/Freelancer Management

Project-based access:

Start of project:

  1. Add as Designer or Developer
  2. Grant specific site access
  3. Set expected end date (calendar reminder)

End of project:

  1. Review completed work
  2. Transfer site ownership
  3. Export final files
  4. Remove access
  5. Send confirmation email

Recurring contractors:

  • Keep account inactive between projects
  • Reactivate when needed
  • Update site access per project
  • Track hours/work via site history

White Label Account Management

Multi-Tier User Structure

For white label partners:

White Label Account (You)
├── Sub-Account 1 (Client A)
│   ├── Team Member 1
│   ├── Team Member 2
│   └── Sites (10)
├── Sub-Account 2 (Client B)
│   ├── Team Member 1
│   └── Sites (5)
└── Agency Team
    ├── Admin
    ├── Designers (5)
    └── Developers (3)

Staff Account Types

Agency staff (your team):

  • Managed at white label level
  • Access across sub-accounts
  • Full feature access

Client staff (sub-account):

  • Managed by client or you
  • Limited to their sub-account
  • Restricted features

Site-specific:

  • Individual site access
  • No account-level access
  • Ideal for contractors

Team Collaboration Features

Team Notifications

Configure notifications:

Settings → Team → Notifications

Notification types:

  • Site published
  • Team member added/removed
  • Client feedback received
  • Site transfer requested
  • Form submissions

Per-user settings:

  • Email notifications
  • In-app notifications
  • SMS alerts (premium)

Site Comments and Mentions

Collaborate on sites:

  • Use @mentions in site editor
  • Leave comments on elements
  • Assign tasks to team members
  • Track conversation history

Access:

  • Editor mode → Comment icon
  • Mention team member: @name
  • Notifications sent automatically

Monitoring and Auditing

View Team Activity

Activity log:

Settings → Team → Activity Log

Tracked activities:

  • Logins and logouts
  • Sites accessed
  • Changes made
  • Content published
  • Team member changes
  • Role modifications

Filter by:

  • Team member
  • Date range
  • Site
  • Action type

Regular Access Reviews

Best practice schedule: Quarterly

Review checklist:

  • List all active team members
  • Verify employment status
  • Check role appropriateness
  • Review site access
  • Identify inactive accounts (90+ days)
  • Remove unnecessary access
  • Update documentation

Best Practices

Adding Team Members

Do:

  • ✓ Use least privilege principle
  • ✓ Grant site-specific access when possible
  • ✓ Set expected access duration
  • ✓ Document reason for access
  • ✓ Send secure password separately
  • ✓ Review access after 30 days

Don't:

  • ✗ Give Admin by default
  • ✗ Share login credentials
  • ✗ Add before employment confirmed
  • ✗ Grant access to all sites unnecessarily

Removing Team Members

Do:

  • ✓ Remove access same day as departure
  • ✓ Transfer site ownership first
  • ✓ Export important work
  • ✓ Document removal
  • ✓ Notify relevant clients
  • ✓ Review for any issues

Don't:

  • ✗ Delay removal
  • ✗ Leave inactive accounts
  • ✗ Forget to transfer sites
  • ✗ Delete without documentation

Troubleshooting

Can't Add Team Member - Plan Limit

Error: "You've reached your team member limit"

Solutions:

  1. Remove inactive members
  2. Upgrade plan: Team → Agency or higher
  3. Use client access: For client-facing users
  4. Site-specific access: Instead of team member

Invitation Not Received

Checklist:

  • Check spam/junk folder
  • Verify email address spelling
  • Invitation not expired (7 days)
  • Email server not blocking

Fix:

  • Resend invitation
  • Use different email address
  • Contact Duda support

Can't Remove Team Member

Possible causes:

  • You lack permissions: Must be Admin or Staff Manager
  • They own sites: Transfer ownership first
  • Account owner: Can't remove owner
  • Active sessions: May need to wait

Solutions:

  • Transfer site ownership
  • Request owner assistance
  • Check your role permissions

Team Member Can't Access Sites

Debug steps:

  1. Verify account active: Check status
  2. Check site permissions: Edit member access
  3. Confirm invitation accepted: Look for "Pending"
  4. Clear browser cache: Have user try
  5. Try different browser: Rule out browser issue

Common fixes:

  • Resend invitation
  • Manually add site access
  • Update role permissions
  • Contact Duda support

Site Ownership Transfer Failed

Issue: Can't transfer site to another team member

Requirements:

  • New owner must be team member (not client)
  • New owner must have appropriate role
  • You must have Admin or Staff Manager role

Fix:

  1. Add new owner as team member first
  2. Assign appropriate role
  3. Transfer ownership
  4. Remove old owner if needed

Next Steps