# Contacts API implementation use cases

This topic discusses all the possible scenarios supported by the Contacts API.

### Scenario 1 - Create multiple contact types but with only two contact details

Let's take the following as an example: Your property has one primary point of contact (Sarah) and a secondary contact (John) to handle everything else.
Note you must create a contact of type `General` at a minimum.

Use the `PUT contacts-api` endpoint to create the contact types:

- Send Sarah's contact information as `General` contact type.
- Send John's contact information as details for all relevant contact types.


For more information, see [creating contact details.](/connectivity/docs/contacts-api/implementing-contacts-api-ga/#creating-contact-details)

### Scenario 2 - Replace existing contact details

Let's take the following as an example: John has left and Jane replaced her. The property wants to update all contacts where John was the contact.

Use the `PUT contacts-api` endpoint to update John's contact information with Jane's:

- Include Sarah's `General` contact details again.
- Send Jane's contact information for all other contact types.


For more information on how to update contact details, see [updating contact details.](/connectivity/docs/contacts-api/implementing-contacts-api-ga/#overwriting-contact-details)

### Scenario 3 - Replace details for one contact type

Let's take the following as an example: Paul joined as reservations manager. The property wants to add Paul as reservations contact replacing Jane

Use the `PUT contacts-api` endpoint to update Jane's contact information with Paul's:

- Send all contact details again, replacing only the `reservations` contact type details with Paul’s information.


For more information on how to update contact details, see [updating contact details.](/connectivity/docs/contacts-api/implementing-contacts-api-ga/#overwriting-contact-details)

### Scenario 4 - Create a new contact for an existing property

Let's take the following as an example: Let's say the property did not have a contact for the special requests contact type.
But now that Clare has joined the company in the customer experience manager role, the property wants to create a new contact for special requests.

Use the `PUT contacts-api` endpoint to create an additional contact type:

- Send all contacts again with Clare’s information as `requests` contact.


For more information on how to update contact details, see [updating contact details.](/connectivity/docs/contacts-api/implementing-contacts-api-ga/#overwriting-contact-details)

### Scenario 5 - Add contact details for an existing contact type

Let's take the following as an example: The business is growing and Peter has joined as a second reservations manager.
The property wants to add another `reservations` contact.

Use the `PUT contacts-api` endpoint to create an additional contact type:

- Send all contacts again including Paul’s details as reservation contact but add Peter’s details also as a second reservations contact.


#### PUT request example:


```json

{
  "contacts": [
    {
      "contact_profiles": [
        {
          "type": "reservations"
        }
      ]
      ... Paul’s details
    },
    {
      "contact_profiles": [
        {
          "type": "reservations"
        }
      ]
      ... Peter’s details
    }
  ]
}
```

## Quick Actions

→ To create and manage contact details, see [Managing contact details.](/connectivity/docs/contacts-api/implementing-contacts-api-ga)
→ To troubleshoot Contacts API error responses, see [Troubleshooting Contacts API error responses.](/connectivity/docs/contacts-api/troubleshooting-contacts-api/)