Invite multiple team members via CSV
Invite 10, 50 or 500 team members at once via a CSV file. Their name, job title and contact details are filled in automatically in their signature.
Invite multiple team members via CSV
For larger organizations, inviting team members one by one is tedious. With bulk-upload you send up to 500 invitations at once โ and their signature is pre-filled with name, job title and contact details automatically.
How it works
- Go to Organization โ pick organization โ Invite.
- Click the Bulk invite via CSV button top-right.
- Follow the 4 steps.
Step 1 โ Download the example file
Click Download example CSV to get a file with the right structure. The file contains 3 example rows that you replace with your own staff.
Columns (in this order):
| Column | Required | Example | |---|---|---| | email | โ yes | john@company.com | | firstName | โ | John | | lastName | โ | Doe | | role | โ (default: member) | admin / member | | jobTitle | โ | Managing Director | | phone | โ | +1 555 123 4567 | | street | โ | 123 Main Street | | postalCode | โ | 10001 | | city | โ | New York |
Empty cells are fine โ only email is required. The rest goes into the team member's signature once they accept the invitation.
Step 2 โ Upload your CSV file
Click the upload field and choose your file. The system supports:
- UTF-8 with comma as separator
- Maximum 500 rows per upload
- BOM (Excel) is recognized automatically
Getting an error?
CSV files from Excel, Numbers or LibreOffice sometimes use a different encoding or separator. The trick that always works:
- Go to sheets.google.com and open a new spreadsheet
- File โ Import โ upload your CSV โ "Replace current sheet"
- File โ Download โ "Comma Separated Values (.csv)"
- Upload that new CSV in MailManagers โ works every time
Google Sheets normalizes encoding and delimiter automatically.
Step 3 โ Review the data
The system shows a table with all rows and a status per row:
- โ Ready โ will be sent
- โ ๏ธ Invalid email โ check typos
- โ ๏ธ Empty โ row is skipped
Rows with issues are not sent; you don't need to fix them. Existing members and open invitations are automatically skipped โ no duplicate emails.
Step 4 โ Confirm and send
Tick the GDPR consent checkbox: this confirms you have permission from the persons to use their email addresses. Then click Send X invitations.
The system processes the rows one by one and shows a summary at the end:
- Sent: successful invitations
- Skipped: already member or open invite
- Errors: validation or mail errors with details
What the team member receives
Each recipient gets an email from MailManagers with:
- The name of the person who invited them
- The organization name
- A button to accept the invitation (link valid for 7 days)
Upon acceptance, the member automatically gets a signature based on your organization template. Name, job title, phone and address from the CSV are filled in immediately โ the member doesn't have to type anything manually.
Seat limit
Your Team plan includes a number of seats (default = 1, expandable). If you send more invitations than available seats:
- All invitations are still sent
- Upon acceptance, each new member becomes active until the seat limit is reached
- Beyond that, members get inactive status โ same as downgrading your plan
- You can increase the seat limit under Account โ Subscription
Common mistakes
- "Column 'email' is missing" โ your CSV is missing the header row or the first column isn't called "email". Use the example CSV as a base.
- Weird characters (รยฉ, รฏยปยฟ) in preview table โ encoding issue. Apply the Google Sheets trick (see above).
- "No rows to process" โ all rows were empty or invalid. Open your CSV in Google Sheets to see what's in it.
- Invitation not received โ check spam folder. Email address may be typed incorrectly. You can see open invites on the organization page.
Security
- Each invitation has a unique signed token (valid 7 days)
- Tokens cannot be transferred between email addresses
- All bulk actions are only accessible to org admins/owners
- GDPR confirmation is mandatory before sending
