> This page is part of the [Customer.io documentation](https://docs.customer.io). For the complete index, see [llms.txt](https://docs.customer.io/llms.txt).
> Last updated: July 15, 2026

# Workspaces in Customer.io

Workspaces are a way of working with multiple products, sites or apps from a single Customer.io account. Everyone starts with one (its name is the same as your account name), and you can add or remove them as needed.

## Manage workspaces

 To create, edit, or delete a workspace, you must be an [Account Admin](/accounts/settings/team/intro-account-access/#roles-and-permissions).

Click your workspace in the upper left corner and then click **Manage all workspaces** to see a list of your workspaces. From here you can add, edit or delete workspaces (if you have more than one).

[![Manage workspace settings](https://docs.customer.io/images/image%2868%29.png)](#a97508ab4cc23a420dbec297ce2b1937-lightbox)

### Add a workspace

By default, new workspaces use *email*, *phone*, and *id* as identifiersThe attributes you use to add, modify, and target people. Each unique identifier value represents an individual person in your workspace.. You can [change identifiers](#migrate-workspace) after you create your workspace.

 If you’re on our *Essentials* plan…

You can create two workspaces. If you already have two workspaces, you’ll either need to upgrade to our [Premium Plan](/accounts/billing/plan-features/#premium-features) or [delete a workspace](#delete-a-workspace) first.

1.  To get to your [*Workspaces* page](https://fly.customer.io/settings/workspaces), click your workspace in the upper left corner and then click **Manage all workspaces**.
2.  Click **Add Workspace**.
3.  Give your new workspace a name and a custom color to help you differentiate between your workspaces.
    
    [![create-workspace.png](https://docs.customer.io/images/create-workspace.png)](#0a8b5090489d311c27dc7bfb5d4c7ea7-lightbox)
    
4.  Set the default send behavior for the workspace:
    *   **Send messages normally:** All messages send as defined in your workflow.
    *   **Test email delivery:** Emails will send to a defined test address; other messaging types (Slack, webhooks, etc.) send as normal.
    *   **Never send messages:** Message delivery is disabled.
5.  (Optional) [Disable open tracking for emails.](#disable-open-tracking)
6.  Select the team members who can manage and access the new workspace. You can’t disable access to a workspace for an Account Admin; Account Admins can access all workspaces in an account.
7.  Click **Save**.

When you’ve finished adding your workspace, you can switch between workspaces from the main navigation bar.

![Switch workspaces](https://docs.customer.io/images/change-workspace.gif)

### Edit a workspace

To edit an existing workspace, go to the *Workspaces* page and click ‘Edit’ in the Manage settings:

[![Edit a workspace](https://docs.customer.io/images/image%2870%29.png)](#a86eb19260a8b18d4a2fee3df392cf82-lightbox)

You can change your workspace’s name, delivery settings or access permissions for team members. You can also change the color assigned to the workspace to help you differentiate between them.

### Delete a workspace

Deleting a workspace permanently removes all data associated with the workspace—including automations, emails, profiles, etc. You may want to export your data before you delete a workspace.

To remove a workspace, go to the *Workspaces* page and click **Delete**. You must type your workspace’s name (case-sensitive) to delete it.

 Deleted workspaces are not recoverable.

Deleting a workspace **permanently** deletes all automations, emails, customers, deliveries, metrics, and data contained within a workspace. Make sure you’re prepared to lose this data before you delete a workspace.

## General workspace settings

After you create a workspace, you can change settings by going to **Settings** > **Workspace Settings** > **General Workspace Settings**.

[![General workspace settings page](https://docs.customer.io/images/general-workspace-settings.png)](#cc1cd2e915448feaa44c010987114a49-lightbox)

This is where you define the identifiers for profiles, which you need to add or update profiles in your workspace. You can always identify profiles by `id` and `cio_id`. You’ll also decide whether to identify profiles by `email` and `phone`—both are optional identifiers that you can enable or disable.

This chart shows what it means to update `email` or `id` based on these settings. `phone` follows the same rules as `email`: it’s an optional identifier, so the same update logic applies.

### Enable or disable email and phone as identifiers

*Email* and *phone* are optional identifiersThe attributes you use to add, modify, and target people. Each unique identifier value represents an individual person in your workspace.—you can enable or disable each one. New workspaces enable both by default. `id` and `cio_id` are always available and can’t be disabled.

Disabling an identifier only prevents you from using that value to add or update profiles; you can still use it as an [attributeA key-value pair that you associate with a person or an object—like a person’s name, the date they were created in your workspace, or a company’s billing date etc. Use attributes to target people and personalize messages.](/journeys/people/manage/attributes/). For example, disabling *phone* means you can no longer reference a profile by their phone number, but you can still store a `phone` attribute and use it to send SMS.

Keeping *email* or *phone* enabled can be helpful for cases where you initially identify profiles that are interested in your product (leads) by email address or phone number and then assign them IDs later, when they become customers.

When you enable *email* or *phone* as an identifier, profiles that share the same value become duplicates—two profiles that would resolve to the same identifier. As part of the enable flow, you choose how to handle them:

*   **Keep the oldest profile**: we [merge](/messaging/profiles/manage/merge-profiles/) each set of duplicates into the profile that was created first.
*   **Keep the newest profile**: we merge each set of duplicates into the profile that was created most recently.
*   **Resolve duplicates yourself**: we don’t merge anything. If your workspace has duplicate values, the change doesn’t complete; we send you a report of the affected profiles so you can [merge](/messaging/profiles/manage/merge-profiles/) or update them before you try again.

 Phone numbers must be in E.164 format

To use *phone* as an identifier, a profile’s phone number must be in [E.164 format](https://en.wikipedia.org/wiki/E.164) (like `+14155552671`). Values that aren’t valid E.164 numbers can’t be used to identify a profile.

 Changing your workspace identifiers may delay processing of profiles and event data

It can take up to a day to revalidate your data based on your new configuration settings. During this time, your workspace pauses processing profiles and event data and your [Workspace performance dashboard](https://fly.customer.io/workspaces/last/health) will reflect this. Processing resumes once validation is complete; no data is dropped.

To enable or disable *email* or *phone* as an identifier:

1.  Go to [**Settings** > **Workspace Settings**](https://fly.customer.io/workspaces/last/settings/edit) and click **General Workspace Settings**.
2.  In the identifiers table, click **Enable** or **Disable** next to `email` or `phone`.
    
    [![change workspace identifiers](https://docs.customer.io/images/enable-identifiers.png)](#bafb4222e75aac2a7d4108a64bc47308-lightbox)
    
3.  Carefully read about the behaviors that will change for your workspace, then confirm. When you **enable** an identifier, you choose [how to handle profiles that share the same value](#migrate-workspace)—keep the oldest profile, keep the newest profile, or resolve duplicates yourself—and your workspace pauses processing while we revalidate your data. When you **disable** an identifier, you can’t leave any profile with `cio_id` as their only identifier—every profile must keep at least one of `id`, `email`, or `phone`. If disabling would orphan profiles, we’ll show you the affected profiles so you can resolve them first.

 Enabling an identifier can require data cleanup first

Enabling an identifier isn’t always instant. If some of your existing values aren’t valid—like phone numbers that aren’t in E.164 format—or the same value belongs to multiple profiles and you chose to resolve duplicates yourself, the change doesn’t complete. We’ll send you a report of the affected profiles so you can fix the data or resolve the duplicates, then try again. This isn’t an error; your workspace keeps working with its previous identifier settings in the meantime.

#### Where you can identify people by phone

While making `phone` an identifier ensures that it’s unique to a profile in Customer.io—so two profiles to share the same phone number—you can’t identify profiles by phone with all of our integrations. You can identify profiles by phone number in the UI and through these sources:

Data-in source

Identify people by `phone`?

[Track API v2](/integrations/api/track/)

Yes

[CSV and Google Sheets imports](/messaging/people/uploading-people/)

Yes

[Track API v1](/integrations/api/track-vs-cdp-api/#two-versions-of-the-track-api)

No

[Pipelines API](/integrations/api/cdp/), including mobile SDKs, JavaScript library, and reverse ETL syncs

No

[Forms](/integrations/data-in/connections/forms/)

No

For integrations that don’t support phone, identify profiles by `id` or `email` and send the phone number as a `phone` attribute. Don’t send a phone number as the *primary* identifier through these integrations: they can’t check your workspace’s identifier settings, so the phone number becomes the profile’s `id`. If the same profile later arrives in an integration that supports phone as an identifier, you’ll end up with [duplicate profiles](/messaging/profiles/manage/merge-profiles/)—one where the phone number is the profile’s `id` and one where it’s the `phone` attribute.

#### Behaviors for profiles without an ID

When you identify profiles by `email` or `phone`, you may notice slightly different behaviors from workspaces that only use `id`.

*   **Reporting Webhooks**: the `customer_id` key is null if you add a profile without an ID (by `email` or `phone` only). You should update your endpoints to use the new `identifiers` object. See our [webhook documentation](/integrations/data-out/connections/webhooks/#the-identifiers-object) for more information.
*   **Segment Source events**: After you migrate, message opens, clicks, etc. for profiles without an `id` are sent with another identifier (such as their `email`) as an `anonymousId`. You can map these anonymous events to another destination or drop them.

#### Reference profiles by ID (allow updates to email and phone using ID)

If your workspace uses `email` or `phone` alongside `id` as identifiersThe attributes you use to add, modify, and target people. Each unique identifier value represents an individual person in your workspace., this setting—shown as **Reference profiles by** in your workspace settings—determines the requirements to change a profile’s `email` or `phone` after you set it. If you created your workspace after January 28, 2022, this setting is on by default.

[![Allow updates to email using ID setting](https://docs.customer.io/images/change-email-with-id.png)](#50bf69ead93220cfb125f2b2b130add0-lightbox)

In general, if you see a lot of failed “Attribute Change” requests in your workspace, or a significant number of your `identify` calls fail, you might try turning this setting on. You can also try enabling [Multi-identifier profile merge](/messaging/profiles/manage/merge-profiles/#auto-merge-complementary) and [Auto-merge on update](/messaging/profiles/manage/merge-profiles/#auto-merge-on-update).

*   **cio\_id**: you must identify a profile by `cio_id` to change their email address or phone number.
    
    A profile’s `cio_id` is set when you create them, and is immutable. It acts as a canonical identifier across changes to a profile’s `id`, `email`, or `phone`.
    
    For example, imagine that a profile already has an `email` address and you want to change it. The request on the left below identifies a profile by their `cio_id` and would succeed. The one on the right would fail. The same applies when you change a profile’s `phone`.
    
    Successful request
    
    Failed request
    
    ```fallback
      curl --request PUT \
      --url https://track.customer.io/api/v1/customers/cio_1234 \
      --header "Authorization: Basic $(echo -n site_id:api_key | base64)" \
      --header 'content-type: application/json' \
      --data '{"email":"new.email@example.com"}'
    ```
    
    ```fallback
      curl --request PUT \
      --url https://track.customer.io/api/v1/customers/id1234 \
      --header "Authorization: Basic $(echo -n site_id:api_key | base64)" \
      --header 'content-type: application/json' \
      --data '{"email":"new.email@example.com"}'
    ```
    
*   **cio\_id** or **id**: you can change a profile’s email address or phone number in any request that includes a profile’s `id`.
    
    This makes it significantly easier to change your audience’s email address or phone number using our JavaScript snippet, [the API](/api/track/#operation/identify), any of our reverse ETL integrations and so on.
    

 This setting does not effect CSV imports

You cannot change a profile’s `email` or `phone` using a CSV import *unless* you use the *Update* setting and identify profiles by their `cio_id`.

### Message sending

Under “How do you want to send messages?” you can choose from:

1.  Send messages normally
2.  Send emails to a test address—note that this only applies to emails
3.  Never send messages

[![An image of the middle of general workspace settings. The section is titled: How do you want to send messages? There are three options from left to right. On the left is: send messages normally. In the middle is: send emails to a test address. On the right is: never send messages. Send emails to a test address is selected and highlighted in blue. There is a dropdown field where the email address ami@customer.io is selected.](https://docs.customer.io/images/workspace-settings-message-sending.png)](#16b002263ba0ac96facf222586740b31-lightbox)

When you first sign up for Customer.io, your account will *send emails to a test address*. This lets you send emails to a profile in your account without verifying a domain so you can test your emails right away. You can see who will receive test emails in the top-left of your workspace. If you’ve integrated with other channels like in-app, those will send normally when “send emails to a test address” is selected.

 How test mode affects sending

While your workspace is in test mode, all emails are sent from Customer.io’s test domain and address ([test@customeriotest.com](mailto:test@customeriotest.com)) rather than your own verified domain. Because of this, you can’t select your own verified domains for sending, and we can’t track metrics like delivered, opened, and clicked back to your workspace.

This keeps test activity from affecting your actual automation metrics. To send from your own domain, verify your domain and switch to Send messages normally.

[![An image of the top menu of a workspace. In the top-left is the workspace name: Ami Academy. To the right is a yellow banner that states: Emails send to ami@customer.io.](https://docs.customer.io/images/test-delivery-mode.png)](#d246538c04ffbb9cab452a4e0f17194d-lightbox)

By default, we’ll send test emails to the address that created the account. [*Account Admins* and *Workspace Admins*](/accounts/settings/team/intro-account-access/#roles-and-permissions) can select another team member to receive test emails from the dropdown. The address for “send emails to a test address” is the same for all team members in the workspace; it’s not unique to each team member.

After you [verify your domain](https://customer.io/messaging/authentication/) and are ready to send emails, click **Send messages normally**. Unless you are explicitly sending a test email, this setting ensures your messages send to actual recipients, as specified in the *To* field of your message.

You can also choose to **Never send messages** of any type (email, in-app, etc.). This disables all message delivery and ensures no one can receive a message from any automation, broadcast, or transactional message. You might choose this option for test workspaces.

### Disable open tracking

Open tracking relies on a tracking pixel—a small image—in your messages; when a user opens an email containing the tracking pixel, the image loads from a remote location and tells us that a user opened the message.

However, open tracking is not always reliable. In the interest of user privacy, Apple and the makers of other email clients offer options to prevent images like tracking pixels from loading when users open messages; this prevents us from tracking open events. In some cases, email clients and corporate firewalls immediately download images when a profile receives an email, causing us to record an open even if a profile didn’t actually open the message.

To disable open tracking at the workspace level and prevent tracking pixels from being added to your emails entirely, you can go to [**Settings** > **Workspace Settings** > **General Workspace Settings**](https://fly.customer.io/workspaces/last/settings/edit). This setting overrides the message-level *Track opens and link clicks in this message* setting. Disabling open tracking this way can help you both respect your audience’s privacy and prevent you from focusing on sometimes-unreliable open rates, as opposed to clicks or conversions.

[![disable open tracking when you create or manage your workspace](https://docs.customer.io/images/disable-open-tracking.png)](#706048c36e79d18ac48bb626b56f0b4c-lightbox)

When you disable open tracking, open metrics for emails may still appear in some charts or tables (in automation metrics, etc), but will always show zero results.

Whether you continue to track opens or not, we recommend setting conversion criteria for your messages and tracking link clicks as [more reliable ways to determine the success of your messages and automations](https://customer.io/blog/apple-is-late-to-the-party-marketers-stopped-trusting-open-rates-years-ago/).

 Open tracking requires consent in some regions

France’s CNIL requires that you get recipient consent before you can track opens. Other regions may have similar regulations. If these regulations apply to you and your recipients, you can [limit open tracking to consenting recipients](/messaging/channels/email/open-tracking-consent/).

### Assign workspace access

If you isolate workspaces by project, client, app, etc, you may want to limit who has access to each workspace. You assign access based on workspace, so your team members can have full access to one workspace and partial access to another.

Only Account Admins can manage access for [team members](/accounts/settings/team/intro-account-access/#how-it-works). They can change access when:

*   creating or editing a workspace
    
    [![At the bottom of workspace settings is a table titled, Who should have access to this workspace? Three team members are listed. On the left are their names and email addresses. On the right are their workspace-level roles.](https://docs.customer.io/images/team-member-edit-workspace.png)](#e17139ae62f3f69247d78f17956aeb23-lightbox)
    
*   adding or editing team members
    
    [![The page header reads, Invite team member. The role Workspace admin is selected for all workspaces.](https://docs.customer.io/images/team-member-invite-page.png)](#7d34f36a36f71bcf47a9c892ebd26703-lightbox)
    

Account Admins have access all workspaces in the account. You cannot disable an Account Admin’s access to a workspace.

## FAQs

### What data is shared across workspaces?

No information is shared between workspaces.

Workspaces are essentially separate instances of Customer.io. Each workspace has its own profiles, automations, metrics, and other data.

### How is billing calculated across workspaces?

We bill based on profiles, objects, emails sent, and Data Pipelines API calls across all your workspaces. Check out [How We Bill](/accounts/billing/how-we-bill/) for more info.

### Is there any way of sharing data between workspaces?

Workspaces are completely separate instances of Customer.io, each with their own profiles and associated data. This prevents sharing information and potentially messaging the wrong profile. However, you can [copy workflow actions across workspaces](/messaging/send/workflows/copying-workflow-items/).

### What about testing? Are workspaces a way to do that?

Although not designed specifically for testing, workspaces *can* be used as a sandbox to set up testing/staging environments. Each workspace is assigned its own set of API keys and are completely separate from your other workspaces. Once you’re ready to migrate a Automation or message from test to production, you can [copy entire workflow actions](/messaging/send/workflows/copying-workflow-items/) from one automation to another across workspaces.

### How do I move a workspace to another account?

To move a workspace from one account to another, you’ll need to contact Customer.io support. This process requires manual assistance from our team to ensure data integrity and proper migration. Click **Need help?** at the top of your workspace and then submit your request through **Get help with an issue**.

*   *   [Manage workspaces](#manage-workspaces)
        *   [Add a workspace](#add-a-workspace)
        *   [Edit a workspace](#edit-a-workspace)
        *   [Delete a workspace](#delete-a-workspace)
    *   [General workspace settings](#general-workspace-settings)
        *   [Enable or disable email and phone as identifiers](#migrate-workspace)
            *   [Where you can identify people by phone](#phone-identifier-support)
            *   [Behaviors for profiles without an ID](#multi-id-behavior)
            *   [Reference profiles by ID (allow updates to email and phone using ID)](#update-email-with-id)
        *   [Message sending](#message-sending)
        *   [Disable open tracking](#disable-open-tracking)
        *   [Assign workspace access](#workspace-permissions)
    *   [FAQs](#faq)
        *   [What data is shared across workspaces?](#what-data-is-shared-across-workspaces)
        *   [How is billing calculated across workspaces?](#how-is-billing-calculated-across-workspaces)
        *   [Is there any way of sharing data between workspaces?](#is-there-any-way-of-sharing-data-between-workspaces)
        *   [What about testing? Are workspaces a way to do that?](#what-about-testing-are-workspaces-a-way-to-do-that)
        *   [How do I move a workspace to another account?](#how-do-i-move-a-workspace-to-another-account)

Copy page

Copy page [Download .md](/accounts/workspaces/overview.md)

Is this page helpful?

![](https://docs.customer.io/images/export-success.png) ![](https://docs.customer.io/images/export-failure.png)

# How can we make it better?

Close

Do you need help from Customer.io support?  No  
 Yes

What part of Customer.io do you need help with? 

How can we improve this page?

Email (optional):  Please provide a valid email address

 I am not a bot

 

We appreciate your feedback!

Our support team will contact you as soon as possible
