# Sending bulk user invites

**URL:** https://meta.discourse.org/t/sending-bulk-user-invites/16468
**Category:** Site Management
**Tags:** how-to, invites, users
**Created:** [June 12, 2014, 7:49am UTC](https://meta.discourse.org/t/sending-bulk-user-invites/16468 "2014-06-12T07:49:47Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![Discourse](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/discourse/32/148734_2.png) [@Discourse](https://meta.discourse.org/u/Discourse)
#### Post date: [June 12, 2014, 7:49am UTC](https://meta.discourse.org/t/sending-bulk-user-invites/16468/1 "2014-06-12T07:49:48Z")

</div>

> 🔖 This guide explains how to invite multiple users to your Discourse instance using a bulk invite feature.
> 
> 🙋 Required user level: Administrator

Inviting a large number of users to your Discourse instance can be time-consuming if done individually. Fortunately, Discourse offers a bulk invite feature that allows you to invite multiple users at once. This guide will walk you through the process of sending bulk invites.

> ℹ It is not possible to invite users to predefined groups such as, trust level groups, admin, mod or staff groups. As a work around, you can configure a custom group to automatically set a users trust level in the Effects section of the group’s configuration page. Doing this will allow you to set the trust level of invited users to a trust level other than what is set by your site’s `default invitee trust level` setting

## Overview

1. Ensure the `Allow bulk invite` site setting is enabled (it is by default)
2. Prepare a CSV file with user information
3. Upload the CSV file to your Discourse instance
4. Monitor the bulk invite progress

## Ensure the `Allow bulk invite` site setting is enabled

The `Allow bulk invite` setting is enabled by default. If it has been disabled on your site:

1. Navigate to your site settings at Admin \> ⚙ All site settings, and search for `bulk invite`. Or go to `{your.domain.com}/admin/site_settings/category/all_results?filter=bulk%20invite`
2. If not already enabled, tick the box beside `Allow bulk invite` and click the check mark to save the site setting.

## Preparing the CSV file

The first step is to create a CSV (Comma-Separated Values) file containing the information of the users you want to invite. Here’s what you need to know:

- Each line represents one user
- The email address is required and must be in the first column
- Group assignments (optional) go in the second column
- A specific topic ID (optional) goes in the third column
- A locale (optional) goes in the fourth column
- Any additional columns can be used to set custom user field values (the column header must match the user field name)

Here’s the structure of the CSV file:

```plaintext
email,groups,topic_id,locale

```

### CSV file guidelines

- Email addresses must be valid
- Separate multiple groups with semicolons (e.g., `group_1;group_2;group_3`)
- You can include existing users if you want to add them to groups
- Only the email is mandatory; groups, topic ID, locale, and user fields are optional
- If including custom user fields, the CSV must have a header row starting with `email`

> ℹ There is a hidden site setting `max_bulk_invites` which allows 50k rows in a CSV by default

### CSV file examples

```plaintext
user1@example.com,group_1;group_2,topic_id
user2@example.com,group_3,
user3@example.com,,

```

> ℹ You can create CSV files easily using spreadsheet software like Microsoft Excel or Google Sheets. Here’s an example of how it might look in a spreadsheet:

 ![image](https://global.discourse-cdn.com/meta/original/4X/0/b/a/0bab00101f9104fe44bae673f0b963636f19195e.png)

Just be sure to save the file as CSV when you’re done.

> **Comma Delimited CSV format in Google Sheets**
>
> ![image](https://global.discourse-cdn.com/meta/original/4X/1/1/8/1181cfc82354b595e7112581bd0e7ac493e31e4a.png)

> **Comma Delimited CSV format in Microsoft Excel**
>
> ![image](https://global.discourse-cdn.com/meta/original/4X/6/f/b/6fb14a15f01a65e5217b5ab268091b2457b5e445.png)

## Uploading the CSV file

Once you’ve prepared your CSV file, follow these steps to upload it:

1. Navigate to the Invites tab on your Admin user’s profile. `{your.domain.com}/my/invited/pending`

2. Click the “Bulk Invite from File” button  

3. In the modal that appears, upload your CSV file  

4. Confirm the upload

After uploading, you’ll receive a confirmation message stating that you’ll be notified when the process is complete.

 ![30%20PM](https://global.discourse-cdn.com/meta/original/3X/d/2/d222616e3d1955aabb314f60b32f1614a091db1d.png)

## Monitoring bulk invite progress

Once the CSV file is processed, you’ll receive a personal message notification with a progress report. This report will include:

- Total number of invites sent
- Number of invites not sent (if any)
- Any errors that occurred during the process

 ![image](https://global.discourse-cdn.com/meta/original/3X/c/8/c80b2455975b4edfe1696771c61ad3803e24606e.png)

You can check your invites page on your user profile to see a list of successfully sent invites.

 ![Screen Shot 2021-11-03 at 01.07.54](https://global.discourse-cdn.com/meta/original/3X/f/e/fe7798d5a1b0bd4664429393adbfb5d01388756d.png)

## What happens next

Each email address in your CSV file will receive an invite email. The email will include:

- The name of the person who sent the invite
- Your community’s title
- A brief description of your community (from the `site description` setting)
- An invitation link

When an invited user clicks the confirmation link:

- Their account will be immediately activated and associated with their email address
- They will be added to the specified groups (if any were included in the CSV)
- They will be directed to the target topic (if a topic ID was specified)

> ℹ Invites that are not clicked will expire based on the `invite expiry days` setting (default: 90 days).

## Customizing invite emails

If you wish to customize the text of the invite emails:

- For general invites, edit the “Invite Forum Mailer” email template
- For invites that include a specific topic ID, edit the “Invite Mailer” email template

## Additional resources

- [Adding users from groups to other groups in bulk](https://meta.discourse.org/t/bulk-add-users-from-groups-to-other-groups/260670)

> Last edited by @MarkDoerr 2025-09-23T02:11:51Z
> 
> Last checked by @hugh 2024-07-11T04:21:44Z
> 
> > **Check document**
> >
> > Perform check on document:

---

<div class="post-metadata">

### Author: ![KCAS](https://avatars.discourse-cdn.com/v4/letter/k/13edae/32.png) [@KCAS](https://meta.discourse.org/u/KCAS)
#### Post date: [July 5, 2024, 10:03am UTC](https://meta.discourse.org/t/sending-bulk-user-invites/16468/117 "2024-07-05T10:03:03Z")

</div>

Hello,

Is it possible to, as it does with existing users, not bulk send emails if the user has a pending invite already?

We’ve uploaded some CSVs but a small number have overlapped causing double invites.

---

<div class="post-metadata">

### Author: ![nwnuyhs](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/nwnuyhs/32/444904_2.png) [@nwnuyhs](https://meta.discourse.org/u/nwnuyhs)
#### Post date: [September 8, 2024, 7:20am UTC](https://meta.discourse.org/t/sending-bulk-user-invites/16468/118 "2024-09-08T07:20:44Z")

</div>

That’s great，thanks for your sharing

---

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [November 13, 2024, 8:44am UTC](https://meta.discourse.org/t/sending-bulk-user-invites/16468/119 "2024-11-13T08:44:20Z")

</div>

Maybe this information should be added to this guide too.

> [@Invite users to a group](https://meta.discourse.org/t/invite-users-to-a-group/15544/1):
>
> ℹ It is not possible to invite users to predefined groups such as, trust level groups, admin, mod or staff groups. As a work around, you can configure a custom group to automatically set a users trust level in the Effects section of the group’s configuration page. Doing this will allow you to set the trust level of invited users to a trust level other than what is set by your site’s `default invitee trust level` setting

---

<div class="post-metadata">

### Author: ![nathank](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/nathank/32/290039_2.png) [@nathank](https://meta.discourse.org/u/nathank)
#### Post date: [May 7, 2025, 1:13am UTC](https://meta.discourse.org/t/sending-bulk-user-invites/16468/120 "2025-05-07T01:13:43Z")

</div>

Totally agree! There are very much two pathways that can be used. It would be helpful to have that linked to in the OP.

---

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [May 7, 2025, 4:05pm UTC](https://meta.discourse.org/t/sending-bulk-user-invites/16468/121 "2025-05-07T16:05:21Z")

</div>

I was mainly referring to the fact that adding to default groups does not work after it came up here [How to bulk invite and assign groups?](https://meta.discourse.org/t/how-to-bulk-invite-and-assign-groups/335802)

---

<div class="post-metadata">

### Author: ![nathank](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/nathank/32/290039_2.png) [@nathank](https://meta.discourse.org/u/nathank)
#### Post date: [May 8, 2025, 2:03am UTC](https://meta.discourse.org/t/sending-bulk-user-invites/16468/122 "2025-05-08T02:03:41Z")

</div>

Ah yes, I see. That would be very easy to add to the text above.

Sorry to @mention you @southpaw (I don’t think you would get notified for this topic as it is owned by the System user), but you might have missed our bits here when you last updated the OP.

---

<div class="post-metadata">

### Author: ![southpaw](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/southpaw/32/79352_2.png) [@southpaw](https://meta.discourse.org/u/southpaw)
#### Post date: [May 8, 2025, 2:31am UTC](https://meta.discourse.org/t/sending-bulk-user-invites/16468/123 "2025-05-08T02:31:48Z")

</div>

Hi @Moin,

> [@Moin](#):
>
> Maybe this information should be added to this guide too.

I’m sorry no one picked up on your suggestion! Thank you for pointing out the need to include that info in this topic. I’ve added it.

> [@nathank](#):
>
> Sorry to @mention you `@Southpaw`

@nathank, I appreciate the mention, no need for any apology!
