> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hightouch.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Knock

> Knock lets you send and manage notifications across email, push, SMS, and in-app from one API—without building the infrastructure yourself.

## Supported syncing

| Type | Description | Supported Sync Modes | API Reference |
| - | - | - | - |
| **Users** | Sync data from any source to Knock [users](https://docs.knock.app/concepts/users) | Upsert | [Users docs](https://docs.knock.app/api-reference/users) |
| **Objects** | Sync data from any source to Knock [objects](https://docs.knock.app/concepts/objects) | Upsert | [Objects docs](https://docs.knock.app/api-reference/objects) |
| **Audiences** | Sync data from any source to Knock [audiences](https://docs.knock.app/concepts/audiences) | Add, Remove | [Audiences docs](https://docs.knock.app/api-reference/audiences) |

For more information about sync modes, refer to the [sync modes](https://docs.hightouch.com/syncs/types-and-modes.md#sync-modes) docs.

## Connect to Knock

Go to the [**Destinations** overview page](https://app.hightouch.com/destinations?from=docs) and click the **Add destination** button. Select **Knock** and click **Continue**. You can then authenticate Hightouch to **Knock**.

Enter the following fields into Hightouch:

* **Secret API key**: You can find this in the Knock dashboard under `API keys`.
* (Optional) **Service token**: This is only required if you plan to sync audiences. You can find this in the Knock dashboard under `Service tokens`.

## Sync configuration

Once you've set up your Knock destination and have a [model](https://docs.hightouch.com/getting-started/concepts.md#models) to pull data from, you can set up your sync configuration to begin syncing data. Go to the [**Syncs** overview page](https://app.hightouch.com/syncs?from=docs) and click the **Add sync** button to begin. Then, select the relevant model and the Knock destination you want to sync to.

### Syncing users

Sync data from any source to Knock [users](https://docs.knock.app/concepts/users).

#### Record matching

To match rows from your model to users in Knock, you need to select the model column that contains values that match the **ID** field.
Refer to the [record matching docs](https://docs.hightouch.com/syncs/record-matching.md) for more information.

#### Field mapping

Hightouch lets you sync user fields via [field mapping](https://docs.hightouch.com/syncs/mapping-data.md).
You can map data from any of your model columns to default and custom user fields.
If you send data for a custom field that doesn't exist, Hightouch adds the field.
Ensure your model's columns have the same data types as the fields you want to sync to.

#### Delete behavior

The [delete behavior](https://docs.hightouch.com/syncs/overview.md#delete-behavior) you select dictates what to do when a row no longer appears in your model's query results. You have the following options:

| Behavior | Description |
| - | - |
| **Do nothing** | Keep the user in Knock with all its synced fields |
| **Delete** | Delete the synced users from Knock |

### Syncing objects

Sync data from any source to Knock [objects](https://docs.knock.app/concepts/objects).

#### Record matching

To match rows from your model to objects in Knock, you need to select the model column that contains values that match the **ID** field.
Refer to the [record matching docs](https://docs.hightouch.com/syncs/record-matching.md) for more information.
You can also optionally map the following fields:

* **Email**
* **Phone number**

#### Delete behavior

The [delete behavior](https://docs.hightouch.com/syncs/overview.md#delete-behavior) you select dictates what to do when a row no longer appears in your model's query results. You have the following options:

| Behavior | Description |
| - | - |
| **Do nothing** | Keep the object in Knock with all its synced fields |
| **Delete** | Delete the synced objects from Knock |

### Syncing audiences

Sync data from any source to Knock [audiences](https://docs.knock.app/concepts/audiences).

#### Select an existing audience or create a new one

You can create a new audience or sync to an existing one. When creating a new audience, you can optionally enter a name. If you leave it blank, Hightouch uses the name of the model. To use an existing audience, select it from the dropdown.

Hightouch creates the audience in Knock during the first sync run.

#### Record matching

To match rows from your model to audiences in Knock, you need to select the model column that contains values that match the **ID** field.
Refer to the [record matching docs](https://docs.hightouch.com/syncs/record-matching.md) for more information.

#### Field mapping

Hightouch lets you sync user fields via [field mapping](https://docs.hightouch.com/syncs/mapping-data.md).
You can map data from any of your model columns to default and custom user fields.
If you send data for a custom field that doesn't exist, Hightouch adds the field.
Ensure your model's columns have the same data types as the fields you want to sync to.

## Tips and troubleshooting

To see the exact API requests and responses from each sync run, use the [live debugger](https://docs.hightouch.com/syncs/debugger.md). To get notified by Slack, PagerDuty, SMS, or email when a sync fails, set up [sync alerts](https://docs.hightouch.com/syncs/alerting.md). If you run into an issue this page doesn't cover, [contact support](#pylon-chat).
