# Adding Contacts

Add individual contacts to your workspace manually.

You can add contacts to SendBeam one at a time using the manual add form. This is useful when
you have a single new subscriber to enter, when adding a test contact, or when onboarding a
small number of people without a CSV file handy.

For adding many contacts at once, use the [CSV Import](https://sendbeam.io/docs/contacts/importing)
feature instead — it is much faster for bulk operations. To add contacts from your own code,
use the [API](https://sendbeam.io/docs/api).

## Adding a contact manually

Follow these steps to add a new contact from within SendBeam:

1. Navigate to **Contacts** in the left sidebar. You will land on your full
  contacts list.
2. Click the **Add contact** button in the top-right corner of the page.
3. Enter the contact's **email address**. This is the only required field. The
  address must be a valid format, at most 254 characters, and must not already exist in the
  workspace.
4. Optionally fill in **First name** and **Last name** (up to 100
  characters each). These are used in merge tags and make your emails feel more personal.
5. Choose a **Source** if you want to record where the contact came from
  (Manual, Import, API or Form). It defaults to Manual.
6. Click **Add contact**. The contact is created immediately with the status
  **Subscribed** and will appear in your contacts list.

> New contacts added manually are given a status of **Subscribed**. If you need
> the contact to have a different status, or want to set custom fields, open the contact and
> click **Edit** straight after saving.
> 

## Required and optional fields

The add contact form has one required field and a few optional ones:

- **Email address (required)** — must be a valid email format of at most 254
  characters. SendBeam checks for basic validity but does not send a verification email to the
  address when adding manually.
- **First name (optional)** — up to 100 characters; used in personalisation merge
  tags. If left blank, `{"{{first_name}}"}` renders as
  empty text.
- **Last name (optional)** — up to 100 characters; similarly used in the
  `{"{{last_name}}"}` merge tag.
- **Source (optional)** — a label for where the contact came from. You can filter
  on it in segments.
- **Language (optional)** — the language the person reads in. When a campaign is
  sent in more than one language, this decides which version they receive; contacts with no
  language get the campaign's own version. You can filter on it in segments. Nothing is guessed:
  it is set here, through the API, an import column or a form field named `language`.

> You can always go back and fill in missing fields later by opening the contact's profile and
> clicking **Edit**. Custom fields are edited there too, as a JSON object such as
> `{"company": "Acme"}`. A contact holds a flat object of up to 50 custom
> fields; each key is 1–64 characters and each value is text of up to 200 characters, a number
> or true/false. Nested objects and arrays are not accepted.
> 

## Duplicate contacts

SendBeam uses the email address as a unique identifier. If you attempt to add a contact with an
email address that already exists in the workspace, the form will show an error and the new
contact will not be created.

Instead of creating a duplicate, you should:

- Search for the existing contact using the search bar on the Contacts page.
- Open their profile and update any fields that need changing.
- Add them to any lists they should be on from the list's page.

This prevents fragmented data and ensures all campaign history stays attached to one record.

Addresses that previously unsubscribed, bounced, complained or were deleted are on the
workspace's **suppression list**. Creating such a contact through the API is
refused (`409`) and a CSV import brings it in as Unsubscribed. An earlier
*unsubscribe* is cleared when the person signs up again through one of your
[signup forms](https://sendbeam.io/docs/forms) (on confirmation, for double opt-in lists), or when you
pass `resubscribe: true` on the API call or tick the re-subscribe box in the dashboard
because they have asked you to. Bounced, complained and deleted addresses are never re-added
this way. See [Suppression list](https://sendbeam.io/docs/contacts/suppressions).

## Adding to lists

The add contact form does not assign lists. To put a contact on a list, open
**Lists**, choose the list, and enter the contact's email address in the
**Add Contact to List** box at the top of the list page.

- The contact must already exist in the workspace.
- If the list has [double opt-in](https://sendbeam.io/docs/lists/double-optin) enabled, the contact
  receives a confirmation email and only counts as a confirmed member once they click it.
- Adding a subscribed contact to a list starts any active automation with the
  **List Joined** trigger for that list (on a double opt-in list, once they
  confirm).

> Only add contacts to lists they have genuinely opted in to. Sending to contacts who have not
> given permission can damage your sender reputation and may violate anti-spam regulations such
> as CAN-SPAM and GDPR.
>

---
Source: https://sendbeam.io/docs/contacts/adding
