# Populations overview

Learn how a Pristo CX population works: contacts, contact attributes, activities and event types, and how distributions use them to send surveys.

A population in Pristo CX is the list of contacts of a program, with their attributes and activities, that distributions send questionnaires to. Each program has one population, and you open it from the **Population** tab at the top of the app.

![A population holds contacts. Each contact has contact attributes and activities, and each activity has an event type. Distributions use contact attributes and event types to decide who receives a questionnaire, and the questionnaire produces responses.](https://docs.pristo.io/_astro/population-model.light.BXzKRM6N.svg)

## Who can see the population

The **Population** tab appears on every plan except Free. On the Free plan the tab is hidden and the population pages cannot be opened. See [Plans and limits](https://docs.pristo.io/cx/get-started/plans-and-limits).

Every member of the program can open the population: account admins, program admins and program users. Only account admins and program admins see the **Actions** menu, which adds and imports contacts, imports activities and defines attributes. Program users can browse contacts and the imports history but cannot change anything. See [roles and permissions](https://docs.pristo.io/cx/users/roles-and-permissions).

## Contacts

A contact is a person who can receive questionnaires by SMS or email. The **Contacts** tab lists them with their **ID**, **Name**, **Phone**, **Email**, **Preferred language** and whether they unsubscribed. The search box finds contacts by the start of their name, or by their exact last name, email, phone or identifier.

- The identifier (**ID**) is unique in the population. Imports and the API use it to recognize the same person, so a row or an event with an existing identifier refers to that contact instead of adding a duplicate.
- A contact needs an Israeli mobile number (+972 5…) to receive SMS and an email address to receive email. Other phone numbers are stored but get no SMS; see [import contacts](https://docs.pristo.io/cx/populations/import-contacts).
- A contact who selects the unsubscribe link in a message is marked **Unsubscribed** and receives no more questionnaires. See [Unsubscribing from SMS and email](https://docs.pristo.io/cx/respondents/answer-a-questionnaire#unsubscribing-from-sms-and-email).
- Each contact has its own page with its details, its **Additional attributes**, the **Sends** it received and its **Events**. An admin can switch a contact to **Inactive**, and inactive contacts receive no questionnaires.

You add contacts in three ways: one at a time with **Add contact**, from a file with [Import contacts](https://docs.pristo.io/cx/populations/import-contacts), or through the API, where each [event you send](https://docs.pristo.io/cx/api/send-an-event) creates or updates its contact.

## Contact attributes

Contact attributes are extra fields on every contact, such as city or customer tier. An admin defines them in **Actions** > **Contact attributes**. It helps to define them before the first import, so the import can fill them.

| Field | What it is |
|---|---|
| **Unique Identifier** | The key used in imports and the API. English letters and underscores only, and it cannot start or end with an underscore |
| **Attribute Name** | The name people see in the app, for example Age |
| **Attribute Type** | **Text**, **Number**, **Date**, **Time**, **Date & Time** or **Boolean** |

A population can have up to 5 text attributes and up to 2 attributes of each other type. Distributions use contact attributes to choose a segment of contacts, and messages can insert them as variables. An attribute can be deleted only while the population has no contacts. See [Contact attributes](https://docs.pristo.io/cx/populations/contact-attributes).

## Activities and event types

An activity is an event recorded for a contact, such as a purchase or a closed support call. In the app, activities appear as **Events** on the contact's page.

An admin defines event types and their attributes in **Actions** > **Events attributes**, which has two tabs:

- **Event types**: the kinds of activity you report, for example Purchase made. Each has an identifier and a name.
- **Attributes**: details that come with an activity, for example branch and transaction amount. They take the same types and limits as contact attributes.

Activities reach Pristo CX from a file with **Import activities**, as described in [Import activities](https://docs.pristo.io/cx/populations/import-activities), or from your own systems through the API's [send an event](https://docs.pristo.io/cx/api/send-an-event) endpoint. An [event-based distribution](https://docs.pristo.io/cx/distributions/event-based) sends a questionnaire when an activity of a chosen event type arrives, and can filter on event attributes.

## Imports history

The **Imports** tab lists every contacts and activities import in the population, with its file name, status and counts of rows, imported and updated contacts, errors and warnings. Expand a row to see each error and warning by row number. An activities import can stay in progress for a few minutes after the file is accepted. The list refreshes itself while an import is still running.

## Related

- [Import contacts](https://docs.pristo.io/cx/populations/import-contacts)
- [Import activities](https://docs.pristo.io/cx/populations/import-activities)
- [Contact attributes](https://docs.pristo.io/cx/populations/contact-attributes)
- [Distributions overview](https://docs.pristo.io/cx/distributions/overview)
- [Send surveys after events](https://docs.pristo.io/cx/distributions/event-based)
- [Send an event with the API](https://docs.pristo.io/cx/api/send-an-event)
