> ## Documentation Index
> Fetch the complete documentation index at: https://docs.brew.new/llms.txt
> Use this file to discover all available pages before exploring further.

# Manage contacts

> Manage contact properties, view activity, handle unsubscribes, and keep your audience clean.

Open the **Audience** tab in the sidebar to see every contact, search and filter them, and edit their details.

## Contact verification

Every contact added to Brew is automatically verified to protect your sending reputation. You'll see a verification status on each contact:

* **Verified.** The address is confirmed deliverable
* **Pending.** Verification is in progress (usually a few seconds)
* **Suppressed.** The contact was flagged as risky and won't receive emails

Brew handles this in the background regardless of how the contact was added (CSV, API, integration, manual).

<Note>
  Suppressed contacts still appear in your contact list but are excluded from sends. This protects your bounce rate and sender reputation.
</Note>

## Contact properties

Every contact has properties, fields that store information you can use for personalization and segmentation.

### Default properties

| Property   | Example                 | Merge tag         | API name     |
| ---------- | ----------------------- | ----------------- | ------------ |
| Email      | `philip@brew.new`       | `{{{email}}}`     | `email`      |
| First name | `Philip`                | `{{{firstName}}}` | `first_name` |
| Last name  | `Sørensen`              | `{{{lastName}}}`  | `last_name`  |
| Source     | `CSV`                   | `{{{source}}}`    | `source`     |
| Subscribed | `Unsubscribed`          | N/A               | `subscribed` |
| Created at | `Oct 10, 2025, 3:02 PM` | `{{{createdAt}}}` | `created_at` |
| Updated at | `Oct 10, 2025, 3:02 PM` | `{{{updatedAt}}}` | `updated_at` |

### Custom properties

Add custom properties for any additional data, demographics, plan, behavior, anything you want to use in personalization or segmentation.

To add a custom property:

1. Open the **Audience** tab
2. Click the contact-properties icon (rightmost icon in the audience table)
3. Select **Add new property**
4. Name it, pick a type, save

<Warning>
  These field names are reserved and can't be used for custom properties: `created_at`, `updated_at`, `email`, `first_name`, `last_name`, `source`, `subscribed`. Use alternatives like `companyEmail` or `workEmail` if you need similar fields.
</Warning>

### Property types

<AccordionGroup>
  <Accordion title="String" icon="font">
    Text values. Examples: `"Enterprise"`, `"New York"`, `"Referred by Jane"`.
  </Accordion>

  <Accordion title="Number" icon="calculator">
    Integers or decimals. Examples: `42`, `99.95`, `2500`.
  </Accordion>

  <Accordion title="Boolean" icon="toggle-on">
    True/false. Accepted formats: `true`/`false`, `yes`/`no`, `1`/`0`.
  </Accordion>

  <Accordion title="Date" icon="calendar">
    Unix timestamp (seconds or ms) or ISO date string.

    Examples:

    * `1704067200` (seconds)
    * `1704067200000` (milliseconds)
    * `2025-01-05`
    * `2025-01-05T14:30:00Z`

    <Tip>
      Brew stores everything in UTC and displays times in your browser's local time zone, small offsets between input and display are normal.
    </Tip>
  </Accordion>
</AccordionGroup>

## Activity timeline

Click any contact's email in the Audience table to see their full activity timeline. Every event, in chronological order.

The timeline shows:

<AccordionGroup>
  <Accordion title="Email engagement" icon="envelope">
    * **Sent.** When an email was delivered to the contact
    * **Opened.** When they opened an email
    * **Clicked.** When they clicked a link
    * **Hard bounced.** Permanent failure
    * **Soft bounced.** Temporary failure
    * **Marked as spam.** They reported an email as spam
    * **Unsubscribed.** They opted out
  </Accordion>

  <Accordion title="Audience events" icon="users">
    * **Added to audience.** When the contact was first added
    * **Property updated.** Any time a property changed
  </Accordion>
</AccordionGroup>

## Unsubscribes

Every campaign and automation email includes an unsubscribe link automatically. You don't have to add one or think about compliance.

When a contact clicks unsubscribe, they go to your branded unsubscribe page. Their status updates immediately and an "unsubscribed" event appears in their activity timeline.

**What happens after unsubscribe:**

* They stop receiving marketing emails (campaigns and automations)
* They continue to receive [transactional emails](/create-emails/automations) like password resets, order confirmations, and account notifications
* The unsubscribe shows up in your [analytics](/analytics/reading-analytics)

**Important rules:**

* You can't re-subscribe contacts from the UI. This protects against accidental re-subscription and keeps you compliant with [CAN-SPAM](https://www.ftc.gov/business-guidance/resources/can-spam-act-compliance-guide-business)
* [CSV imports](/audience/add-contacts) don't re-subscribe contacts who've previously unsubscribed, even if `Subscribed` is set to `true`
* Hard bounces and spam complaints are handled separately from unsubscribes

<Warning>
  Don't delete unsubscribed contacts. If you re-add them later, they could end up subscribed again. Keep them in your audience so Brew can enforce their unsubscribe status.
</Warning>

### Customize the unsubscribe page

Open **Settings → Unsubscribe** to preview and customize the page contacts see. You can adjust the copy, branding, and confirmation message. The unsubscribe link itself stays automatic in every email.

## Updating contact properties

For individual contacts:

1. Click a contact in the Audience table
2. Edit any property
3. Click **Save**

For bulk updates, [re-upload a CSV](/audience/add-contacts). Empty cells won't overwrite existing values, so you can update only what's changed.

## Deleting contacts

To permanently remove contacts:

1. Filter or select the contacts to delete
2. Click the **More** menu `(...)` at the top of the table
3. Select **Delete contacts**
4. Confirm

<Warning>
  Contact deletion is permanent. Deleted contacts are removed from all automations. This is different from unsubscribing or suppressing.
</Warning>

## Programmatic management

For backend-driven contact management, use the [Brew API](/api-reference/api/api-introduction) to create, update, and delete contacts.

## Need Help?

Our team is ready to support you at every step of your journey with Brew. Choose the option that works best for you:

<Tabs>
  <Tab title="Self-Service Tools">
    <CardGroup cols="2">
      <Card title="Search Documentation" icon="magnifying-glass" color="#c44925">
        Type in the "Ask any question" search bar at the top left to instantly find relevant documentation pages.
      </Card>

      <Card title="ChatGPT/Claude Integration" icon="robot" color="#c44925">
        Click "Open in ChatGPT" at the top right of any page to analyze documentation with ChatGPT or Claude for deeper insights.
      </Card>
    </CardGroup>
  </Tab>

  <Tab title="Talk to Our Team">
    <CardGroup cols="2">
      <Card title="Schedule a Call" icon="calendar" color="#c44925" href="https://calendar.google.com/calendar/u/0/appointments/schedules/AcZssZ1iYoRUG1J792XQpbuQLjSRRDupr7MwraFK-HQRCtTYdBmrQi8nZu2qXfzKQigb8gbKJK3KN3-R">
        Book time with our founders for personalized guidance on strategy, best practices, or complex implementation questions.
      </Card>

      <Card title="Call Us Directly" icon="phone" color="#c44925">
        Need immediate assistance? Reach us at **+1-(332)-203-2145** for urgent issues or time-sensitive questions.
      </Card>

      <Card title="Slack Channel" icon="slack" color="#c44925">
        Our preferred support channel. You'll receive an invite after signup for direct founder support and fast responses.
      </Card>

      <Card title="Email Support" icon="envelope" color="#c44925" href="mailto:support@brew.new">
        Contact us at **[support@brew.new](mailto:support@brew.new)** for detailed inquiries or if you prefer not to use Slack.
      </Card>
    </CardGroup>
  </Tab>
</Tabs>
