> For the complete documentation index, see [llms.txt](https://docs.feedotter.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.feedotter.com/feedotter-email/managing-your-audience.md).

# Managing Your Audience

The Audience page is your central hub for managing contacts, lists, unsubscribe groups, and subscriber intake. It is accessible via **Feedotter Email → Audience** in the left sidebar, or from the main navigation under **Audience**.

> **Screenshot suggestion:** The Audience page showing the five tabs: Lists, Contacts, Unsubscribe Groups, Custom Fields, Activity.

***

### Audience Page Tabs

The Audience page has five tabs:

| Tab                    | Purpose                                                     |
| ---------------------- | ----------------------------------------------------------- |
| **Lists**              | Create and manage contact lists; import contacts via CSV    |
| **Contacts**           | Search, add, edit, and delete individual contacts           |
| **Unsubscribe Groups** | Create and manage suppression groups for opt-out management |
| **Custom Fields**      | Define custom contact attributes beyond email and name      |
| **Activity**           | View a log of subscriber webhook and form submission events |

***

### Lists

Lists are named groups of contacts used to target sends. At least one list is required before you can send an email with FeedOtter Email.

#### Creating a List

1. Go to **Audience → Lists**
2. Click **New List**
3. Enter a name for the list
4. Click **Save**

#### Managing Lists

Each list shows its name and the current contact count. From the list row you can:

* **Edit** — rename the list
* **Delete** — remove the list (contacts are not deleted from your account)
* **Upload CSV** — import contacts into this list (see CSV Import below)
* **Sign-up Form / Webhook** — configure a public subscribe endpoint for this list (see Adding Subscribers)

> **Screenshot suggestion:** Lists tab showing a few lists with contact counts and the action menu.

***

### Contacts

#### Adding a Contact Manually

1. Go to **Audience → Contacts**
2. Click **Add Contact**
3. Enter the contact's email address (required), first name, and last name
4. Optionally assign the contact to one or more lists
5. Click **Save**

#### Searching and Filtering Contacts

* Use the search box to find contacts by email address
* Click a list name from the Lists tab to filter the Contacts tab to that list's members

#### Editing or Deleting a Contact

Click the action menu on any contact row to edit their details or remove them from your account.

> **Screenshot suggestion:** Contacts tab showing the contact list with search box and Add Contact button.

***

### CSV Import

You can bulk-import contacts from a CSV file into one or more lists.

#### How to Import

1. Go to **Audience → Lists**
2. Click the **upload icon** on the list you want to import into
3. The CSV Import modal opens
4. Upload your `.csv` file
5. Map each column header to a contact field (`email` is required; other fields like `first_name` and `last_name` are optional)
6. Optionally select additional lists to add the contacts to
7. Click **Import**

An import status bar tracks progress. Large files may take a few minutes. When the import completes, the contact count on the list will update.

> **Screenshot suggestion:** CSV Import modal with column mapping step visible.

**Tips:**

* Your CSV must have a header row
* The `email` column must be mapped to complete the import
* Contacts that already exist in your account will be updated, not duplicated

***

### Unsubscribe Groups

Unsubscribe Groups (suppression groups) let subscribers opt out of specific categories of email rather than all email from your account. Selecting an Unsubscribe Group is required every time you send with FeedOtter Email.

#### Creating an Unsubscribe Group

1. Go to **Audience → Unsubscribe Groups**
2. Click **New Group**
3. Enter a name (e.g. "Weekly Newsletter") and an optional description
4. Click **Save**

The group will now appear as a selectable option when configuring a newsletter send. The group ID is also shown — it is used internally by FeedOtter Email when scheduling sends.

> **Screenshot suggestion:** Unsubscribe Groups tab showing one or two groups with their IDs.

***

### Custom Fields

Custom Fields let you store additional attributes on contacts beyond email, first name, and last name.

#### Creating a Custom Field

1. Go to **Audience → Custom Fields**
2. Click **New Field**
3. Enter a field name and select a type (Text, Number, or Date)
4. Click **Save**

Custom fields can be referenced as merge tags in your email content once created. The field's ID is displayed in the list and used to reference it programmatically.

***

### Activity

The Activity tab shows a paginated log of all subscribe events received via webhooks or embedded forms. Each entry includes:

* Timestamp
* Email address submitted
* Status (success or error)
* The list the subscription was directed to

This is useful for confirming that your Zapier integrations or webhook calls are working as expected.

***

### Adding Subscribers via Webhook / Zapier

Each list has a unique, secure webhook URL that accepts new subscriber submissions from any external tool — including Zapier, custom forms, or any HTTP client. This is the recommended method for adding new subscribers to your lists programmatically.

#### Getting the Webhook URL

1. Go to **Audience → Lists**
2. Click the action menu on any list
3. Select **Sign-up Form / Webhook**
4. In the modal, click the **Webhook URL** tab
5. Copy the endpoint URL

The URL follows this format:

```
POST https://{your-feedotter-domain}/r/api/public/subscribe/{webhookToken}
```

#### Request Format

Send a JSON `POST` request with the following body:

```json
{
  "email": "subscriber@example.com",
  "first_name": "Jane",
  "last_name": "Smith"
}
```

| Field        | Required | Description                    |
| ------------ | -------- | ------------------------------ |
| `email`      | Yes      | The subscriber's email address |
| `first_name` | No       | Subscriber's first name        |
| `last_name`  | No       | Subscriber's last name         |

A successful response returns:

```json
{
  "success": true,
  "job_id": "..."
}
```

#### Setting Up with Zapier

1. Create a new Zap in Zapier
2. Choose a trigger (e.g. a new row in Google Sheets, a form submission, a CRM event)
3. Add an action: **Webhooks by Zapier → POST**
4. Set the URL to your webhook endpoint (copied from the modal above)
5. Set the **Payload Type** to `JSON`
6. Map fields: `email`, `first_name`, `last_name`
7. Test and activate the Zap

Subscribe events will appear in the **Activity** tab after the Zap runs.

> **Screenshot suggestion:** Sign-up Form / Webhook modal open on the Webhook URL tab, showing the endpoint and JSON example.

#### Regenerating the Webhook Token

If a webhook token is compromised or you need to rotate it for security reasons:

1. Open the **Sign-up Form / Webhook** modal for the list
2. Click **Regenerate Token**
3. Update any Zapier Zaps or integrations with the new URL

***

### Signup Form Embed

> **⚠️ Under Construction**
>
> The Signup Form Embed feature is partially implemented and not yet ready for production use. Please use the Webhook / Zapier method above to add subscribers until this feature is complete. This documentation will be updated when the embed is available.

The Signup Form / Webhook modal includes an **Embed Form** tab that is intended to provide a copyable code snippet for embedding a subscribe form on your website.

#### What Exists Today

* An **iframe embed** option that loads a hosted form page — this page loads but only collects an email address, and the user experience is minimal
* A **JavaScript snippet** option that would load a customizable inline form — this option is advertised in the UI but the required script file does not yet exist

#### What Is Coming

* A fully functional JS embed snippet
* A customizable form that collects first name, last name, and email
* Full documentation for embedding the form on any website

In the meantime, use the Webhook URL with Zapier or your own HTTP POST integration to reliably add subscribers to your lists.
