# Contacts

Keep customer profiles, tags, custom fields, and imports in sync.

24 operations in the Contacts resource group.

## Operations

- [Get contacts](/reference/contacts/get-contacts.md) - GET `/contacts` - Returns customer profiles with identities, tags, and custom fields. Use filters to
find the segment you want to message, enroll in journeys, or keep in sync.
- [Create contact](/reference/contacts/create-contact.md) - POST `/contacts` - Creates a customer profile that can be matched to messages and events.
- [Count contacts](/reference/contacts/get-contacts-count.md) - GET `/contacts/count` - Returns the tenant's contact count for a navigation/dashboard badge. This is independent
of any list filters; the archived query parameter selects which bucket to count.
- [Get contact by ID](/reference/contacts/get-contact.md) - GET `/contacts/{id}` - Returns one customer profile with identities, tags, custom fields, and archive state.
- [Update contact](/reference/contacts/update-contact.md) - PATCH `/contacts/{id}` - Updates mutable contact fields. Fields omitted from the body are left unchanged.
- [Delete contact](/reference/contacts/delete-contact.md) - DELETE `/contacts/{id}` - Soft deletes a contact. Use archive when you only want to hide the contact from active lists.
- [Import contacts from CSV](/reference/contacts/import-contacts.md) - POST `/contacts/import` - Uploads a CSV file and starts a background contact import. Poll the returned import ID
to review completion counts and row-level errors.
- [Get import status](/reference/contacts/get-import-status.md) - GET `/contacts/imports/{id}` - Returns progress and row-level failures for a contact import.
- [Archive contact](/reference/contacts/archive-contact.md) - POST `/contacts/{id}/archive` - Hides a contact from active lists without deleting its history.
- [Unarchive contact](/reference/contacts/unarchive-contact.md) - POST `/contacts/{id}/unarchive` - Restores an archived contact to active lists.
- [Set contact field value](/reference/contacts/set-contact-custom-field-value.md) - PUT `/contacts/{contactId}/custom-fields/{customFieldId}` - Sets or clears one custom field value on a contact. Send an empty string to clear
the value while keeping the field definition available for future use.
- [Add tag to contact](/reference/contacts/tag-contact.md) - POST `/contacts/{contactId}/tags/{tagId}` - Adds a label to the contact for segmentation, routing, or reporting.
- [Remove tag from contact](/reference/contacts/untag-contact.md) - DELETE `/contacts/{contactId}/tags/{tagId}` - Removes a label from the contact.
- [List tags](/reference/contacts/list-tags.md) - GET `/tags` - Returns the labels available for organizing contacts.
- [Create tag](/reference/contacts/create-tag.md) - POST `/tags` - Creates a label that can be attached to contacts.
- [Delete tag](/reference/contacts/delete-tag.md) - DELETE `/tags/{id}`
- [List contact field definitions](/reference/contacts/list-contact-field-definitions.md) - GET `/contacts/custom-fields` - Returns the reusable custom fields that can store structured customer context on
contacts, such as lifecycle stage, preferred store, or renewal date.
- [Create contact field definition](/reference/contacts/create-contact-field-definition.md) - POST `/contacts/custom-fields` - Creates a reusable custom field for storing customer context on contacts.
- [Update contact field definition](/reference/contacts/update-contact-field-definition.md) - PATCH `/contacts/custom-fields/{id}` - Renames a contact field definition or changes its value type.
- [Delete contact field definition](/reference/contacts/delete-contact-field-definition.md) - DELETE `/contacts/custom-fields/{id}` - Deletes a contact field definition that is no longer needed.
- [List property field definitions](/reference/contacts/list-property-field-definitions.md) - GET `/properties/custom-fields` - Returns the reusable custom fields that can store structured context on property
records, such as region, tier, or renewal date.
- [Create property field definition](/reference/contacts/create-property-field-definition.md) - POST `/properties/custom-fields` - Creates a reusable custom field for storing context on property records.
- [Update property field definition](/reference/contacts/update-property-field-definition.md) - PATCH `/properties/custom-fields/{id}` - Renames a property field definition or changes its value type.
- [Delete property field definition](/reference/contacts/delete-property-field-definition.md) - DELETE `/properties/custom-fields/{id}` - Deletes a property field definition that is no longer needed.

## Schemas

- [ProblemDetails](/reference/schemas/problem-details.md) - object - RFC 9457 Problem Details response with a stable Flownally error code.
- [FieldViolation](/reference/schemas/field-violation.md) - object
- [Window](/reference/schemas/messaging-window.md) - object - Tells a client whether the current actor can send in this conversation right now.
- [Response](/reference/schemas/contacts-response.md) - object - Paginated contact list.
- [Contact](/reference/schemas/contact.md) - object - Customer profile used across messaging, events, and journeys.
- [Identity](/reference/schemas/identity.md) - object - Channel identity that links a contact to conversations.
- [CreateContactRequest](/reference/schemas/create-contact-request.md) - object - Contact fields to create. Add custom fields after defining them in Flownally.
- [CountResponse](/reference/schemas/contacts-count-response.md) - object
- [UpdateContactRequest](/reference/schemas/update-contact-request.md) - object
- [ImportContactsResponse](/reference/schemas/import-contacts-response.md) - object - Accepted contact import job.
- [ImportStatus](/reference/schemas/import-status.md) - object - Progress and results for a contact import.
- [ImportError](/reference/schemas/import-error.md) - object
- [SetContactCustomFieldValueRequest](/reference/schemas/set-contact-custom-field-value-request.md) - object - Value to store on a contact. Send an empty string to clear the value.
- [TagsResponse](/reference/schemas/tags-response.md) - object
- [Tag](/reference/schemas/tag.md) - object - Label used to segment and organize contacts.
- [CreateTagRequest](/reference/schemas/create-tag-request.md) - object - Tag to create.
- [CustomFieldDefinitionsResponse](/reference/schemas/custom-field-definitions-response.md) - object - Reusable custom field definitions for one resource type.
- [CustomFieldDefinition](/reference/schemas/custom-field-definition.md) - object - Defines a reusable custom field for either contacts or property records. Values are stored
separately on each resource.
- [CreateCustomFieldDefinitionRequest](/reference/schemas/create-custom-field-definition-request.md) - object - Field definition to create for the resource collection in the URL.
- [UpdateCustomFieldDefinitionRequest](/reference/schemas/update-custom-field-definition-request.md) - object - New name and value type for an existing field definition.
