# Nextdoor Conversion API Reference

## Destination Info

* Supports [Track](https://documentation.freshpaint.io/developer/freshpaint-sdk-reference#track) calls
* Supports [HIPAA mode](https://documentation.freshpaint.io/hipaa-mode)
* Refer to this destination as **Nextdoor Conversions API** in the [Integrations object](https://documentation.freshpaint.io/reference/developer/freshpaint-sdk-reference#using-the-integrations-object)
* Connection Modes:

<table><thead><tr><th width="200.33333333333331" align="right"> </th><th data-type="checkbox">Client-side</th><th data-type="checkbox">Server-side</th></tr></thead><tbody><tr><td align="right">Web</td><td>false</td><td>true</td></tr><tr><td align="right">Mobile</td><td>false</td><td>true</td></tr><tr><td align="right">Server</td><td>false</td><td>true</td></tr></tbody></table>

This is a reference document for the Nextdoor destination. For information on how to set up this integration, see the [Nextdoor Conversion API Quick Start Guide](/integrations/destinations/direct-response-ads/nextdoor-conversion-api-early-access/nextdoor-conversion-api-quick-start-guide.md).

## Events

When you send an event to the Nextdoor Conversion API destination from Freshpaint, Freshpaint will create an event in the Nextdoor event manager by hitting Nextdoor's API.

### Properties

<table data-full-width="true"><thead><tr><th width="186.70703125">Freshpaint property</th><th width="182.470703125">Nextdoor parameter</th><th width="110.3642578125">Type</th><th width="141.2265625">Requirement</th><th>Description</th></tr></thead><tbody><tr><td><code>$ndclid</code></td><td><code>click_id</code></td><td>string</td><td><mark style="color:$danger;"><strong>Required</strong></mark></td><td>Nextdoor's click ID, used for attribution of clicks to conversion events.</td></tr><tr><td><code>$event_id</code></td><td><code>event_id</code></td><td>string</td><td><mark style="color:$danger;"><strong>Required</strong></mark></td><td>Unique identifier for the event chosen by the advertiser, used for deduplication.<br><br>Freshpaint will autofill this value.</td></tr><tr><td><code>$event_time</code></td><td><code>event_time_epoch</code></td><td>long</td><td><mark style="color:$danger;"><strong>Required</strong></mark></td><td>Timestamp with ISO 8601 format for when the event occurred.<br><br>Freshpaint will autofill this value if missing.</td></tr><tr><td><code>$action_source</code></td><td><code>action_source</code></td><td>string</td><td><mark style="color:$danger;"><strong>Required</strong></mark></td><td>The medium through which the conversion was made. See Nextdoor's documentation for the list of valid values: <a href="https://developer.nextdoor.com/reference/conversions-track">https://developer.nextdoor.com/reference/conversions-track</a><br><br>The default is <code>website</code> if not provided.</td></tr><tr><td><code>nextdoor_event_name</code></td><td><code>event_name</code></td><td>string</td><td><mark style="color:$success;">Recommended</mark></td><td>The Nextdoor event name to track. See the "Accepted Event Names" chart below for valid values.<br><br>Note: If this property is absent, Freshpaint will attempt to use the name of the Freshpaint event. This will only work if the Freshpaint event name is one of the specific supported Nextdoor names, so we recommend sending event name separately.</td></tr><tr><td><code>event_source_url</code></td><td><code>event_source_url</code></td><td>string</td><td>Optional</td><td>The URL where the event occurred, must start with "http://" or "https://".<br><br>Freshpaint will use the url where the event occurred on your website if not provided and coming from the Freshpaint Javascript SDK.</td></tr></tbody></table>

### Accepted Event Names

Nextdoor only accepts particular strings for valid `event_name` values. The full list can be seen in Nextdoor's API documentation here: <https://developer.nextdoor.com/reference/conversions-track>

Valid event names include:&#x20;

* `add_to_cart`
* `add_to_wishlist`
* `initiate_checkout`
* `lead`
* `page_view`
* `purchase`
* `search`
* `sign_up`
* `subscribe`
* `view_content`
* custom\_conversion\_# (where accepted numbers are 1 through 10, ie `custom_conversion_7`)

### User Data Properties

When you send user actions to Nextdoor, Nextdoor will attempt to match those actions to a particular Nextdoor user.

Nextdoor requires a number of the user parameters to be hashed. Freshpaint will automatically hash these user values when sending them to Nextdoor's API.

Nextdoor also requires a number of normalization rules. The Freshpaint integration will automatically normalize most user data fields according to Nextdoor's requirements.

A detailed description of formatting and normalization rules can be found in Nextdoor's documentation here: <https://developer.nextdoor.com/reference/conversion-data-types>

<table data-full-width="true"><thead><tr><th width="177.4345703125">Freshpaint property</th><th width="192.673828125">Nextdoor parameter</th><th width="117.9716796875">Type</th><th width="196.900390625">Requirement</th><th>Description</th></tr></thead><tbody><tr><td><code>$ip</code></td><td><code>client_ip_address</code></td><td>string</td><td><mark style="color:$success;">Recommended</mark></td><td>IP address of the customer's device.</td></tr><tr><td><code>$user_agent</code></td><td><code>client_user_agent</code></td><td>string</td><td><mark style="color:$success;">Recommended</mark></td><td>The user agent of the browser where the event occurred.</td></tr><tr><td><code>email</code></td><td><code>email</code></td><td>string</td><td><mark style="color:$success;">Recommended</mark></td><td><p>The email of the user. </p><p></p><p><mark style="color:$info;">Note: Freshpaint will send the hashed value to Nextdoor. You should not hash these values when sending to Freshpaint.</mark></p></td></tr><tr><td><code>phone</code></td><td><code>phone_number</code></td><td>string</td><td><mark style="color:$success;">Recommended</mark></td><td><p>The phone number of the user. </p><p></p><p><mark style="color:$info;">Note: Freshpaint will send the hashed value to Nextdoor. You should not hash these values when sending to Freshpaint.</mark></p></td></tr><tr><td><code>first_name</code></td><td><code>first_name</code></td><td>string</td><td>Optional</td><td><p>First name of the user. </p><p></p><p><mark style="color:$info;">Note: Freshpaint will send the hashed value to Nextdoor. You should not hash these values when sending to Freshpaint.</mark></p></td></tr><tr><td><code>last_name</code></td><td><code>last_name</code></td><td>string</td><td>Optional</td><td>Last name of the user. <br><br><mark style="color:$info;">Note: Freshpaint will send the hashed value to Nextdoor. You should not hash these values when sending to Freshpaint.</mark></td></tr><tr><td><code>date_of_birth</code></td><td><code>date_of_birth</code></td><td>string</td><td>Optional</td><td>The user's date of birth. <code>YYYYMMDD</code> format.<br><br><mark style="color:$info;">Note: Freshpaint will send the hashed value to Nextdoor. You should not hash these values when sending to Freshpaint.</mark></td></tr><tr><td><code>gender</code></td><td><code>gender</code></td><td>string</td><td>Optional</td><td>The user's gender. Nextdoor accepts "m" or "f" only.<br><br><mark style="color:$info;">Note: Freshpaint will send the hashed value to Nextdoor. You should not hash these values when sending to Freshpaint.</mark></td></tr><tr><td><code>city</code></td><td><code>city</code></td><td>string</td><td>Optional</td><td>The user's city. <br><br><mark style="color:$info;">Note: Freshpaint will send the hashed value to Nextdoor. You should not hash these values when sending to Freshpaint.</mark></td></tr><tr><td><code>state</code></td><td><code>state</code></td><td>string</td><td>Optional</td><td>The user's 2-letter state code. <br><br><mark style="color:$info;">Note: Freshpaint will send the hashed value to Nextdoor. You should not hash these values when sending to Freshpaint.</mark></td></tr><tr><td><code>zip</code></td><td><code>zip</code></td><td>string</td><td>Optional</td><td>The user's zip or postal code. <br><br><mark style="color:$info;">Note: Freshpaint will send the hashed value to Nextdoor. You should not hash these values when sending to Freshpaint.</mark></td></tr><tr><td><code>country</code></td><td><code>country</code></td><td>string</td><td>Optional</td><td>The user's 2-letter country code.<br><br><mark style="color:$info;">Note: Freshpaint will send the hashed value to Nextdoor. You should not hash these values when sending to Freshpaint.</mark></td></tr></tbody></table>

### Custom Data

<table data-full-width="true"><thead><tr><th width="177.4345703125">Freshpaint property</th><th width="192.673828125">Nextdoor parameter</th><th width="117.9716796875">Type</th><th width="196.900390625">Requirement</th><th>Description</th></tr></thead><tbody><tr><td><code>order_value</code></td><td><code>order_value</code></td><td>string</td><td><mark style="color:$success;">Recommended</mark></td><td>The monetary value of the conversion.<br><br>Expected by Nextdoor for <code>purchase</code> type events.</td></tr><tr><td><code>order_id</code></td><td><code>order_id</code></td><td>string</td><td><mark style="color:$success;">Recommended</mark></td><td>A unique transaction identifier/id for the conversion event.<br><br>Expected by Nextdoor for offline events.</td></tr><tr><td><code>delivery_category</code></td><td><code>delivery_category</code></td><td>string</td><td>Optional</td><td>The category for how the product was delivered. For example <code>in_store</code>.</td></tr><tr><td><code>product_context</code></td><td><code>product_context</code></td><td>object</td><td>Optional</td><td><p>An object of:</p><pre><code>{
"id": (string),
"quantity": (integer),
"item_price": (integer)
}
</code></pre></td></tr></tbody></table>

### Restricted Data Usage

You can send `restricted_data_usage` properties to restrict how Nextdoor uses your data. See their documentation: <https://developer.nextdoor.com/reference/privacy-and-restricted-data-usage>.

Freshpaint simply passes on these values to Nextdoor. These fields do not change the behavior within Freshpaint in any way.

<table data-full-width="true"><thead><tr><th width="292.080078125">Property</th><th width="125.55859375">Type</th><th width="159.220703125">Requirement</th><th></th></tr></thead><tbody><tr><td><code>restricted_data_usage</code></td><td>Integer</td><td>Optional</td><td>Must be <code>true</code> , <code>1</code>, or <code>null</code>. Default: <code>null</code>.<br><br>If set to <code>0</code> or <code>false</code>, the below state and country fields will be set to <code>null</code>.</td></tr><tr><td><code>restricted_data_usage_country</code></td><td>Integer</td><td>Optional</td><td>Must be <code>1</code> or <code>null</code>. Default: <code>null</code>.</td></tr><tr><td><code>restricted_data_usage_state</code></td><td>Integer</td><td>Optional</td><td>See Nextdoor's list of valid state codes. Not all states are supported by Nextdoor.  Default: <code>null</code>.</td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://documentation.freshpaint.io/integrations/destinations/direct-response-ads/nextdoor-conversion-api-early-access/nextdoor-conversion-api-reference.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
