diff --git a/src/connections/destinations/add-destination.md b/src/connections/destinations/add-destination.md
index 33c5eb68e9..530fbb2deb 100644
--- a/src/connections/destinations/add-destination.md
+++ b/src/connections/destinations/add-destination.md
@@ -52,7 +52,7 @@ You can also add a destination directly from the source's settings page in the S
#### Adding a destination using the Public API
-You can use the Segment Public API to add destinations to your workspace using the [Create Destination endpoint](https://docs.segmentapis.com/tag/Destinations#operation/createDestination){:target = "_blank"}. The API requires an authorization token, and uses the `name` field as a namespace that defines which _source_ the destination is connected to. You send the rest of the destination's configuration as a JSON blob. View the documentation page in the Segment Catalog, or query the [Segment Catalog API](https://docs.segmentapis.com/tag/Catalog){:target="_blank"}, for a destination to see the available settings.
+You can use the Segment Public API to add destinations to your workspace using the [Create Destination endpoint](https://docs.segmentapis.com/tag/Destinations#operation/createDestination){:target="_blank"}. The API requires an authorization token, and uses the `name` field as a namespace that defines which _source_ the destination is connected to. You send the rest of the destination's configuration as a JSON blob. View the documentation page in the Segment Catalog, or query the [Segment Catalog API](https://docs.segmentapis.com/tag/Catalog){:target="_blank"}, for a destination to see the available settings.
> success ""
> You must use an authorization token to access the Public API, and these tokens are tied to specific workspaces. If you use the Public API to access multiple workspaces, make sure you're using the token for the workspace you want to access before proceeding.
@@ -112,7 +112,7 @@ Multi-instance support is not available for most hybrid Actions destinations or
Segment does not support connecting a single source to multiple instances of a [Data Lakes](/docs/connections/storage/data-lakes/) destination.
-> warning "Non-mobile sources can only connect to _one_ device-mode instance of a destination"
+> warning "Non-mobile sources can only connect to one device-mode instance of a destination"
> You cannot connect a source to more than one instance of a destination that operates only in device-mode. For more information about device-mode restrictions, see the [Sending Segment data to Destinations](/docs/connections/destinations/add-destination/#connecting-one-source-to-multiple-instances-of-a-destination:~:text=Multi%2Dinstance%20destinations-,and,-Device%2Dmode) documentation.
> success ""
diff --git a/src/connections/destinations/destination-filters.md b/src/connections/destinations/destination-filters.md
index a12043851a..e1116ace2f 100644
--- a/src/connections/destinations/destination-filters.md
+++ b/src/connections/destinations/destination-filters.md
@@ -18,7 +18,7 @@ Common use cases for destination filters include:
- Increasing data relevance in your destinations by removing unused or unwanted data
- Preventing test or internally-generated events from reaching your production tools
-### Limitations
+## Limitations
Keep the following limitations in mind when you use destination filters:
diff --git a/src/connections/functions/aws-apis.md b/src/connections/functions/aws-apis.md
index cde3145631..87b58347e3 100644
--- a/src/connections/functions/aws-apis.md
+++ b/src/connections/functions/aws-apis.md
@@ -8,8 +8,8 @@ The [`aws-sdk`](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guid
To set up your functions to call AWS APIs:
1. Create an IAM role in your AWS account that your function will assume before making AWS API calls.
1. Make sure you have these two values:
- * **Principal account ID**: This is the ID number for the AWS account that your function runs in. For destination functions, this is `458175278816` and for source functions this is `300240842537`.
- * **External ID**: This is the value your IAM role uses to ensure that only your functions have the ability to assume the role. Segment recommends you to choose a long string of at least 32 random characters and treat it as if it were an API key or a password.
+ * **Principal account ID**: This is the ID number for the AWS account that your function runs in. For destination functions, this is `458175278816` and for source functions this is `300240842537`.
+ * **External ID**: This is the value your IAM role uses to ensure that only your functions have the ability to assume the role. Segment recommends you to choose a long string of at least 32 random characters and treat it as if it were an API key or a password.
2. Create an IAM role in your AWS account with the [minimum set of necessary permissions](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege){:target="_blank"}.
3. Add a trust relationship to your role with the following policy, filling in the principal account ID and external ID from step 1.1:
```json
@@ -33,11 +33,13 @@ To set up your functions to call AWS APIs:
```
2. Create your function.
-
Now that you have an IAM role in your AWS account, you can create your source or destination function. Segment recommends you to use function settings to make the IAM role configurable. This allows you to use different roles for different instances of your function and to securely store your external ID value by making it a "sensitive" setting. Here are the required settings:
- * **IAM Role ARN**: A string setting that is the ARN for the IAM role above. For example, `arn:aws:iam::1234567890:role/my-secure-role`.
- * **IAM Role External ID**: A sensitive string setting that is the external ID for your IAM role.
- Below is an example destination function that uploads each event received to an S3 bucket (configured using additional "S3 Bucket" and "S3 Bucket Region" settings). It uses the built-in local cache to retain S3 clients between requests to minimize processing time and to allow different instances of the function to use different IAM roles.
+Now that you have an IAM role in your AWS account, you can create your source or destination function. Segment recommends you to use function settings to make the IAM role configurable. This allows you to use different roles for different instances of your function and to securely store your external ID value by making it a "sensitive" setting. Here are the required settings:
+
+* **IAM Role ARN**: A string setting that is the ARN for the IAM role above. For example, `arn:aws:iam::1234567890:role/my-secure-role`.
+* **IAM Role External ID**: A sensitive string setting that is the external ID for your IAM role.
+
+Below is an example destination function that uploads each event received to an S3 bucket (configured using additional "S3 Bucket" and "S3 Bucket Region" settings). It uses the built-in local cache to retain S3 clients between requests to minimize processing time and to allow different instances of the function to use different IAM roles.
```javascript
async function getS3(settings) {
diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md
index f67904d3c7..daea43d34b 100644
--- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md
+++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md
@@ -61,11 +61,11 @@ To set up Db2 as your Reverse ETL source:
4. Click **+ Add Reverse ETL source**.
5. Select **Db2** and click **Add Source**.
6. Fill in the following Db2 connection settings:
- * Hostname: ``
- * Port: ``
- * Database: ``
- * Username: ``
- * Password: ``
+ * Hostname: ``
+ * Port: ``
+ * Database: ``
+ * Username: ``
+ * Password: ``
7. Click **Test Connection** to validate the setup.
8. If the connection is successful, click **Add source**.
diff --git a/src/connections/reverse-etl/setup.md b/src/connections/reverse-etl/setup.md
index 909ed855c4..e876b1572b 100644
--- a/src/connections/reverse-etl/setup.md
+++ b/src/connections/reverse-etl/setup.md
@@ -25,13 +25,13 @@ To add your warehouse as a source:
2. Click **+ Add Reverse ETL source**.
3. Select the source you want to add.
4. Follow the corresponding guide to set up the required permissions for your Reverse ETL source:
- - [Azure Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/azure-setup)
- - [BigQuery Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/bigquery-setup)
- - [Databricks Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/databricks-setup)
- - [Db2 Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup)
- - [Postgres Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/postgres-setup)
- - [Redshift Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/redshift-setup)
- - [Snowflake Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup)
+ - [Azure Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/azure-setup)
+ - [BigQuery Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/bigquery-setup)
+ - [Databricks Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/databricks-setup)
+ - [Db2 Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup)
+ - [Postgres Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/postgres-setup)
+ - [Redshift Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/redshift-setup)
+ - [Snowflake Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup)
## Step 2: Add a model
Models define sets of data you want to sync to your Reverse ETL destinations. A source can have multiple models. Segment supports [SQL models](/docs/connections/reverse-etl/setup/#step-4-create-mappings) and [dbt models](/docs/segment-app/extensions/dbt/).
diff --git a/src/connections/reverse-etl/system.md b/src/connections/reverse-etl/system.md
index 2b4ff49a71..72467c44af 100644
--- a/src/connections/reverse-etl/system.md
+++ b/src/connections/reverse-etl/system.md
@@ -31,7 +31,7 @@ The records table helps in determining new and updated rows by comparing the che
### Checkpoint table
-The `checkpoints_` tables are located within the __segment_reverse_etl schema.
+The `checkpoints_` tables are located within the `__segment_reverse_etl` schema.
This table contains the following columns:
diff --git a/src/connections/sources/about-cloud-sources.md b/src/connections/sources/about-cloud-sources.md
index 0406fa47fc..5b191cb99b 100644
--- a/src/connections/sources/about-cloud-sources.md
+++ b/src/connections/sources/about-cloud-sources.md
@@ -9,11 +9,11 @@ Cloud-App Sources (often shortened to Cloud Sources) allow you to pull in data f
As in the basic tracking API, _objects_ usually contain information about a person or group which is updated over time, while _event_ data happens once, and is appended to a list.
-### Event Cloud-App Sources
+## Event Cloud-App Sources
Event Cloud Sources can export their data both into Segment warehouses, and into other enabled Segment integrations that work with event data.
-### Object Cloud-App Sources
+## Object Cloud-App Sources
Object Cloud App Sources can export data and import it directly into a Segment warehouse. You *must* have a Segment warehouse enabled before you enable these. From the warehouse, you can analyze your data with SQL, use [Reverse ETL](/docs/connections/reverse-etl) to extract data, or use Engage SQL Traits to build audiences. Some examples of Object Cloud sources are Salesforce (account information), Zendesk (support cases), and Stripe (payments information).
diff --git a/src/connections/sources/catalog/cloud-apps/bluedot/index.md b/src/connections/sources/catalog/cloud-apps/bluedot/index.md
index 8f9b5053f9..449627b095 100644
--- a/src/connections/sources/catalog/cloud-apps/bluedot/index.md
+++ b/src/connections/sources/catalog/cloud-apps/bluedot/index.md
@@ -16,7 +16,6 @@ This source is maintained by Bluedot. For any issues with the source, [contact B
1. From your workspace's [Sources catalog page](https://app.segment.com/goto-my-workspace/sources/catalog){:target="_blank"} click **Add Source**.
2. Search for **Bluedot** in the Sources Catalog, select **Bluedot**, and click **Add Source**.
3. On the next screen, give the Source a name configure any other settings.
-
The name identifies this source within your workspace, and typically reflects the name of the application. The name can be anything, but Segment recommends that you use something that reflects the source itself and distinguishes amongst your environments (for example, `SourceName_Prod`, `SourceName_Staging`, or `SourceName_Dev`).
4. Click **Add Source** to save your settings.
5. Copy the Write key from the Segment UI and log in to Bluedot Canvas - navigate to Integrations > Select the Project you want link > Segment Integration and paste the key to connect.
diff --git a/src/connections/sources/catalog/cloud-apps/clevertap/index.md b/src/connections/sources/catalog/cloud-apps/clevertap/index.md
index 8bb1bfe9f8..b04ece4a66 100644
--- a/src/connections/sources/catalog/cloud-apps/clevertap/index.md
+++ b/src/connections/sources/catalog/cloud-apps/clevertap/index.md
@@ -14,7 +14,7 @@ This is an [Event Cloud Source](/docs/sources/#event-cloud-sources) which can ex
This source is maintained by CleverTap. For any issues with the source, [contact their Support team](https://help.clevertap.com/hc/en-us/requests/new){:target="_blank”}.
> info "This is a Beta source"
-> The CleverTap Source is in beta, which means that they are still actively developing the source. If you're interested in joining their beta program or have any feedback to help improve the CleverTap Source and its documentation, [let their team know](https://help.clevertap.com/hc/en-us/requests/new){:target="_blank"}._
+> The CleverTap Source is in beta, which means that they are still actively developing the source. If you're interested in joining their beta program or have any feedback to help improve the CleverTap Source and its documentation, [let their team know](https://help.clevertap.com/hc/en-us/requests/new){:target="_blank"}.
## Getting Started
@@ -33,8 +33,8 @@ This source is maintained by CleverTap. For any issues with the source, [contact
The table below lists events that CleverTap sends to Segment. These events appear as tables in your warehouse and as regular events in other Destinations.
-| Name | Description
-| --------------- | ----------- | ------------------------- |
+| Name | Description |
+| --------------- | ----------- |
| App Launched | This event is captured every time a user launches the application. |
| App Installed | The event is captured when the user launches the app for the first time. |
| App Uninstalled | This event is captured when a user uninstalls your application. |
diff --git a/src/connections/sources/catalog/libraries/mobile/android/quickstart.md b/src/connections/sources/catalog/libraries/mobile/android/quickstart.md
index e75e23018b..3b7634a41b 100644
--- a/src/connections/sources/catalog/libraries/mobile/android/quickstart.md
+++ b/src/connections/sources/catalog/libraries/mobile/android/quickstart.md
@@ -137,8 +137,6 @@ To get started, we recommend tracking just a few important events. You can alway
Once you've added a few `track` calls, **you're done!** You successfully instrumented your app! Now you're ready to turn on any destination you fancy from our interface, margarita in hand.
----
-
## What's Next?
We just walked through the quickest way to get started with Segment using Analytics-Android. You might also want to check out Segment's full [Analytics-Android reference](/docs/connections/sources/catalog/libraries/mobile/android) to see what else is possible, or read about the [Tracking API methods](/docs/connections/sources/catalog/libraries/server/http-api/) to get a sense for the bigger picture.
diff --git a/src/connections/sources/catalog/libraries/server/csharp/index.md b/src/connections/sources/catalog/libraries/server/csharp/index.md
index e7428dde74..482362355e 100644
--- a/src/connections/sources/catalog/libraries/server/csharp/index.md
+++ b/src/connections/sources/catalog/libraries/server/csharp/index.md
@@ -10,7 +10,6 @@ tags:
- Xamarin
- Unity
- ASP.NET
-id:
redirect_from:
- '/connections/sources/catalog/libraries/mobile/unity/'
- '/connections/sources/catalog/libraries/mobile/csharp/'
@@ -20,7 +19,8 @@ redirect_from:
With Analytics-CSharp, you can add Segment analytics to your C# based app which includes Unity, Xamarin, .NET. Analytics-CSharp helps you measure your users, product, and business. It unlocks insights into your app's funnel, core business metrics, and whether you have product-market fit. The Analytics-CSharp library is open-source [on GitHub](https://github.com/segmentio/analytics-csharp){:target="_blank"}.
-### Supported platforms
+## Supported platforms
+
These platforms support Analytics-CSharp:
* .NET/.NET core/.NET framework
* Mono
@@ -403,7 +403,7 @@ For example, you might want to disable flushes if you detect the user has no net
}
```
-### Create your own flush policies
+### Create your own flush policies
You can create a custom FlushPolicy special for your application needs by implementing the `IFlushPolicy` interface. You can also extend the `IFlushPolicy` class that already creates and handles the `shouldFlush` value reset.
diff --git a/src/connections/sources/catalog/libraries/server/go/quickstart.md b/src/connections/sources/catalog/libraries/server/go/quickstart.md
index 40e21b7821..7c29ca0b85 100644
--- a/src/connections/sources/catalog/libraries/server/go/quickstart.md
+++ b/src/connections/sources/catalog/libraries/server/go/quickstart.md
@@ -107,10 +107,6 @@ To get started, we recommend tracking just a few important events. You can alway
Once you've added a few `track` calls, **you're done!** You successfully installed analytics tracking on your servers. Now you're ready to turn on any destination you fancy from our interface, margarita in hand.
-
----
-
-
## What's Next?
We just walked through the quickest way to get started with Segment using go. You might also want to check out our full [Go library reference](/docs/connections/sources/catalog/libraries/server/go/) to see what else is possible, or read about the [Tracking API methods](/docs/connections/sources/catalog/libraries/server/http/) to get a sense for the bigger picture.
diff --git a/src/connections/sources/catalog/libraries/server/go/v2/quickstart.md b/src/connections/sources/catalog/libraries/server/go/v2/quickstart.md
index 5b0c54db1d..2d36746898 100644
--- a/src/connections/sources/catalog/libraries/server/go/v2/quickstart.md
+++ b/src/connections/sources/catalog/libraries/server/go/v2/quickstart.md
@@ -107,10 +107,6 @@ To get started, we recommend tracking just a few important events. You can alway
Once you've added a few `track` calls, **you're done!** You successfully installed analytics tracking on your servers. Now you're ready to turn on any destination you fancy from our interface, margarita in hand.
-
----
-
-
## What's Next?
We just walked through the quickest way to get started with Segment using go. You might also want to check out our full [Go library reference](/docs/connections/sources/catalog/libraries/server/go/) to see what else is possible, or read about the [Tracking API methods](/docs/connections/sources/catalog/libraries/server/http/) to get a sense for the bigger picture.
diff --git a/src/connections/sources/catalog/libraries/server/java/quickstart.md b/src/connections/sources/catalog/libraries/server/java/quickstart.md
index 0b23329169..318c712c0e 100644
--- a/src/connections/sources/catalog/libraries/server/java/quickstart.md
+++ b/src/connections/sources/catalog/libraries/server/java/quickstart.md
@@ -113,10 +113,6 @@ To get started, we recommend tracking just a few important events. You can alway
Once you've added a few `track` calls, **you're done!** You successfully installed Analytics tracking. Now you're ready to turn on any destination you fancy from our interface, margarita in hand.
-
----
-
-
## What's Next?
We just walked through the quickest way to get started with Segment using our Java library. You might also want to check out our full [reference](/docs/connections/sources/catalog/libraries/server/java) to see what else is possible, or read about the [Tracking API methods](/docs/connections/sources/catalog/libraries/server/http/) to get a sense for the bigger picture.
diff --git a/src/connections/sources/catalog/libraries/server/node/quickstart.md b/src/connections/sources/catalog/libraries/server/node/quickstart.md
index a974ec38ed..6e51ae7325 100644
--- a/src/connections/sources/catalog/libraries/server/node/quickstart.md
+++ b/src/connections/sources/catalog/libraries/server/node/quickstart.md
@@ -89,8 +89,6 @@ To get started with Analytics Node.js:
After you've added a few `track` calls, you've successfully installed analytics tracking on your servers. Now you're ready to turn on any destination from the Segment app.
----
-
## What's Next?
You can check out the full docs for [Analytics Node.js](/docs/connections/sources/catalog/libraries/server/node) to see what else is possible, or read about the [Tracking API methods](/docs/connections/sources/catalog/libraries/server/http/) to get a sense for the bigger picture.
diff --git a/src/connections/sources/catalog/libraries/server/object-api/index.md b/src/connections/sources/catalog/libraries/server/object-api/index.md
index e9c0f7a972..05a7cb0398 100644
--- a/src/connections/sources/catalog/libraries/server/object-api/index.md
+++ b/src/connections/sources/catalog/libraries/server/object-api/index.md
@@ -10,18 +10,18 @@ Use the Segment Objects API to send business objects relevant to your business r
> warning ""
> Segment hasn't added support for the core `analytics-` libraries so you'll need to use the Segment HTTP API directly or the independent Go(lang) client for now.
-### Authentication
+## Authentication
Authenticate to the Objects API by sending your project's **Write Key** along with a request.
Authentication uses HTTP Basic Auth, which involves a 'username:password' that is base64 encoded and pre-pended with the string 'Basic '.
In practice that means taking a Segment source **Write Key**,`'abc123'`, as the username, adding a colon, and then the password field is left empty. After base64 encoding `'abc123:'` becomes `'YWJjMTIzOg=='`; and this is passed in the authorization header like so: `'Authorization: Basic YWJjMTIzOg=='`.
-### Source type
+## Source type
Set up an `HTTP API` source type in Segment. You will use this source write key for authenticating with the Objects API.
-### Content-type
+## Content-type
In order to send data to Segment's HTTP API, the content-type header must be set to `'application/json'`.
@@ -156,12 +156,14 @@ POST https://objects.segment.com/v1/set
This call sends a collection of "rooms". "rooms" becomes the table name in your data warehouse, and each individual object in the array becomes a row in that table.
+| Field | Type | Description |
|-------------------------|--------|-------------------------------------------------------------------------------------------|
| `collection` *Required* | String | A string that represents the name of the collection. The collection name will become the table name in your data warehouse. Collection must consist of lowercase letters and underscores and maximum of 100 characters. Can not begin or end with an underscore. |
| `objects` | Array | A required array of objects describing the objects and properties being set. Must consist of at least one JSON object and a maximum of 10. |
Each object inside of the objects array must consist of the following parameters:
+| Parameter | Type | Description |
|-------------------------|--------|-------------------------------------------------------------------------------------------|
| `id` *Required* | String | The unique ID representing the object in the third party system. Maximum of 100 characters. |
| `Properties` *Required* | Object | The object properties that represent the object. Example: Each value could be a string (ISO dates are parsed and recognized as `isodate` type), an integer, or a float (JSON types). Values cannot be lists or objects. Each value must be less than 32KB in size. |
diff --git a/src/connections/sources/catalog/libraries/server/object-bulk-api/index.md b/src/connections/sources/catalog/libraries/server/object-bulk-api/index.md
index aa9e1860ef..5b1d3b19b3 100644
--- a/src/connections/sources/catalog/libraries/server/object-bulk-api/index.md
+++ b/src/connections/sources/catalog/libraries/server/object-bulk-api/index.md
@@ -14,7 +14,8 @@ It differs from the Object API in that it is designed to:
> warning ""
> At this time, Segment hasn't created tooling akin to core analytics-* libraries so you'll need to use Segment's HTTP API directly for now.
-### Batched Object Data
+## Batched Object Data
+
The `Batched Object Data` the API accepts is a file of line separated objects, in JSON form, compressed using `Gzip`.
The maximum size of a single `object` is 400KB and maximum uncompressed size of a file 512MB.
@@ -23,25 +24,26 @@ Example objects:
{"id":"1","collection":"users","properties":{"first_name":"John","last_name":"Smith"}}
{"id":"2","collection":"users","properties":{"first_name":"Jane","last_name":"Doe"}}
```
-
+| Field | Type | Description |
|-------------------------|--------|-------------------------------------------------------------------------------------------|
| **`id`** *Required* | String | The unique ID representing the object in the third party system.
Maximum of 100 characters. |
| **`collection`** *Required* | String | A string that represents the name of the collection. The collection name will become the table name in your data warehouse.
Collection must consist of lowercase letters and underscores and maximum of 100 characters. Can not begin or end with an underscore. |
| **`Properties`** *Required* | Object | The object properties that represent the object.
Example: Each value could be a string (ISO dates are parsed and recognized as `isodate` type), an integer, or a float (JSON types).
Values cannot be lists or objects. Each value must be less than 32KB in size. |
-### Authentication
+## Authentication
Authenticate to the Objects Bulk API by sending your project's **Write Key** along with a request.
Authentication uses HTTP Basic Auth, which involves a `username:password` that is base64 encoded and prepended with the string `Basic `.
In practice that means taking a Segment source **Write Key** encoding it with base64. For example, `echo "abc123" | base64 -` becomes `'YWJjMTIzCg=='` and this is passed in the authorization header like so: `'Authorization: Basic YWJjMTIzCg=='`.
-### Source type
+## Source type
set up an `HTTP API` source type in Segment. You will use this source write key for authenticating with the Objects Bulk API.
-### Limits
+## Limits
+
The API imposes some rate limits including:
- **512MB** maximum uncompressed [file](#batched-object-data) upload size
- **400KB** maximum [object](#batched-object-data) size
diff --git a/src/connections/sources/catalog/libraries/server/php/quickstart.md b/src/connections/sources/catalog/libraries/server/php/quickstart.md
index b0192feed5..106219d899 100644
--- a/src/connections/sources/catalog/libraries/server/php/quickstart.md
+++ b/src/connections/sources/catalog/libraries/server/php/quickstart.md
@@ -141,9 +141,6 @@ Segment::flush();
And presto, **you're done!** You successfully installed PHP tracking. Now you're ready to turn on any destination you fancy from our interface, margarita in hand.
----
-
-
## What's Next?
We just walked through the quickest way to get started with Segment using PHP. You might also want to check out our full [PHP reference](/docs/connections/sources/catalog/libraries/server/php) to see what else is possible, or read about the [Tracking API methods](/docs/connections/sources/catalog/libraries/server/http) to get a sense for the bigger picture.
diff --git a/src/connections/sources/catalog/libraries/server/python/quickstart.md b/src/connections/sources/catalog/libraries/server/python/quickstart.md
index 87b2a45367..b3e42eb949 100644
--- a/src/connections/sources/catalog/libraries/server/python/quickstart.md
+++ b/src/connections/sources/catalog/libraries/server/python/quickstart.md
@@ -97,10 +97,6 @@ To get started, we recommend tracking just a few important events. You can alway
And voila, **you're done!** You've just successfully installed analytics tracking on your servers. Now you're ready to turn on any destination you fancy from our interface, martini in hand.
-
----
-
-
## What's Next?
We just walked through the quickest way to get started with Segment using Python. You might also want to check out our full [Python library reference](/docs/connections/sources/catalog/libraries/server/python/) to see what else is possible, or read about the [Tracking API methods](/docs/connections/sources/catalog/libraries/server/http/) to get a sense for the bigger picture.
diff --git a/src/connections/sources/catalog/libraries/server/ruby/quickstart.md b/src/connections/sources/catalog/libraries/server/ruby/quickstart.md
index 857de7f583..b4666b6fa5 100644
--- a/src/connections/sources/catalog/libraries/server/ruby/quickstart.md
+++ b/src/connections/sources/catalog/libraries/server/ruby/quickstart.md
@@ -112,10 +112,6 @@ To get started, we recommend tracking just a few important events. You can alway
Once you've added a few `track` calls, **you're done!** You successfully installed analytics tracking on your servers. Now you're ready to turn on any destination you fancy from our interface, margarita in hand.
-
----
-
-
## What's Next?
We just walked through the quickest way to get started with Segment using Ruby. You might also want to check out our full [Ruby library reference](/docs/connections/sources/catalog/libraries/server/ruby) to see what else is possible, or read about the [Tracking API methods](/docs/connections/sources/catalog/libraries/server/http/) to get a sense for the bigger picture.
diff --git a/src/connections/sources/catalog/libraries/server/rust/quickstart.md b/src/connections/sources/catalog/libraries/server/rust/quickstart.md
index d37da160c1..aa7b9ac9f9 100644
--- a/src/connections/sources/catalog/libraries/server/rust/quickstart.md
+++ b/src/connections/sources/catalog/libraries/server/rust/quickstart.md
@@ -144,10 +144,6 @@ To get started, we recommend tracking just a few important events. You can alway
Once you've added a few `track` calls, **you're done!** You successfully installed analytics tracking on your servers. Now you're ready to turn on any destination you fancy from our interface, margarita in hand.
-
----
-
-
## What's Next?
We just walked through the quickest way to get started with Segment using go. You might also want to check out our full [Go library reference](/docs/connections/sources/catalog/libraries/server/rust/) to see what else is possible, or read about the [Tracking API methods](/docs/connections/sources/catalog/libraries/server/http/) to get a sense for the bigger picture.
diff --git a/src/connections/sources/catalog/libraries/website/cloudflare/index.md b/src/connections/sources/catalog/libraries/website/cloudflare/index.md
index 495c23e2ec..ad90b416c2 100644
--- a/src/connections/sources/catalog/libraries/website/cloudflare/index.md
+++ b/src/connections/sources/catalog/libraries/website/cloudflare/index.md
@@ -10,7 +10,7 @@ Segment makes it simple for Cloudflare customers to integrate analytics, email m
The guide below explains how to install Segment on your Cloudflare-hosted website. All you need to get up and running is to create a Cloudflare source and turn on the Segment app for your website. The following guide will show you how, step by step.
-don't have a Segment account? No problem, [sign up here](https://segment.com/signup?utm_source=cloudflare&utm_medium=docs&utm_campaign=partners).
+Don't have a Segment account? No problem, [sign up here](https://segment.com/signup?utm_source=cloudflare&utm_medium=docs&utm_campaign=partners).
## Getting Started
diff --git a/src/connections/sources/catalog/libraries/website/javascript/index.md b/src/connections/sources/catalog/libraries/website/javascript/index.md
index 5f907dd5cd..5c8f513b70 100644
--- a/src/connections/sources/catalog/libraries/website/javascript/index.md
+++ b/src/connections/sources/catalog/libraries/website/javascript/index.md
@@ -180,7 +180,7 @@ analytics.trackForm(form, event, [properties])
```
Field | | Type | Description
------ | | ---- | -----------
+----- | -- | ---- | -----------
`form(s)` | | Element or Array | The form element to track or an array of form elements or jQuery objects. _Note: trackForm takes an element, not a CSS selector._ Segment recommends that you wait until the DOM loads before passing the form element.
`event` | | String or Function | The name of the event, passed to the `track` method. Or a **function** that returns a string to use as the name of the `track` event.
`properties` | optional | Object or Function | A dictionary of properties to pass with the Track method. Or a **function** that returns an object to use as the `properties` of the event.
@@ -278,7 +278,7 @@ analytics.group(groupId, [traits], [options], [callback]);
The Group call has the following fields:
Field | | Type | Description
------ | | ---- | -----------
+----- | -- | ---- | -----------
`groupId` | | String | The Group ID to associate with the current user.
`traits` | optional | Object | A dictionary of [traits](/docs/connections/spec/group#traits) for the group. Example traits for a group include `address`, `website`, and `employees`.
`options` | optional | Object | A dictionary of options. For example, [enable or disable specific destinations](#managing-data-flow-with-the-integrations-object) for the call. _Note: If you do not pass a `properties` object, pass an empty object (like '{}') before `options`_.
diff --git a/src/connections/sources/catalog/libraries/website/plugins/vimeo/index.md b/src/connections/sources/catalog/libraries/website/plugins/vimeo/index.md
index 437d326be6..399d8e5173 100644
--- a/src/connections/sources/catalog/libraries/website/plugins/vimeo/index.md
+++ b/src/connections/sources/catalog/libraries/website/plugins/vimeo/index.md
@@ -9,7 +9,8 @@ With the analytics.js Vimeo Plugin you can collect Vimeo player events into the
To use the Vimeo plugin:
1. Generate an access token in Vimeo. The plugin uses this token to access metadata about the playing video content. Vimeo provides documentation to [generate the access token](https://developer.vimeo.com/api/guides/start#generate-access-token).
-- **Note:** Make sure to select the access scopes you need as the plugin only needs to read information about your video(s).
+
+ - **Note:** Make sure to select the access scopes you need as the plugin only needs to read information about your video(s).
2. Enable a new plugin by navigating to the settings for your Source and clicking **Plugins**. You can enable the Vimeo plugin from this menu:
diff --git a/src/connections/sources/catalog/libraries/website/plugins/youtube/index.md b/src/connections/sources/catalog/libraries/website/plugins/youtube/index.md
index 1fec536c79..439a8d3289 100644
--- a/src/connections/sources/catalog/libraries/website/plugins/youtube/index.md
+++ b/src/connections/sources/catalog/libraries/website/plugins/youtube/index.md
@@ -21,14 +21,16 @@ To begin, create a new project in the Google Developer Console, then create a ne
After you've generated the API key:
1. Enable a new plugin.
-- Navigate to **Connections > Sources** and choose the source you want to connect the YouTube plugin to. Go to the **Settings** tab of your source and select **Plugins**. You can enable the YouTube plugin from this menu:
+
+ - Navigate to **Connections > Sources** and choose the source you want to connect the YouTube plugin to. Go to the **Settings** tab of your source and select **Plugins**. You can enable the YouTube plugin from this menu:

**Note:** Only JavaScript sources support plugins.
2. Initialize the plugin by giving it access to the YouTube video player instance(s) running on your page. This can be done by adding this script, to the section of the source code where the page loads.
-- Use the initialize method in the YouTube `onYouTubeIframeAPIReady()` function to register and initialize the plugin with the player instance and your API key:
+
+ - Use the initialize method in the YouTube `onYouTubeIframeAPIReady()` function to register and initialize the plugin with the player instance and your API key:
```js
var player;
diff --git a/src/connections/sources/catalog/libraries/website/shopify-littledata/index.md b/src/connections/sources/catalog/libraries/website/shopify-littledata/index.md
index 9e03c63d35..ddf5d79f1a 100644
--- a/src/connections/sources/catalog/libraries/website/shopify-littledata/index.md
+++ b/src/connections/sources/catalog/libraries/website/shopify-littledata/index.md
@@ -11,7 +11,7 @@ Littledata's [Shopify to Segment connection](https://help.littledata.io/posts/s
Littledata is available as an independent [Shopify App](https://apps.shopify.com/segment-com-by-littledata){:target="\_blank"}.
-#### Client-side (device mode) tracking
+## Client-side (device mode) tracking
After the [installation process](https://help.littledata.io/posts/segment-installation-guide/){:target="\_blank"}:
@@ -21,7 +21,7 @@ After the [installation process](https://help.littledata.io/posts/segment-insta
- Device-mode e-commerce events can send to all Segment destinations
- Segment's anonymous ID and Google Analytics' client ID passes to Littledata's servers to ensure consistent user journey tracking
-#### Server-side (cloud mode) tracking
+## Server-side (cloud mode) tracking
During the Segment connection setup, Littledata also adds a set of webhooks to your Shopify store. When a customer interacts with your store these changes are relayed server-side from Shopify to Littledata to Segment. The advantages to this approach are:
@@ -177,7 +177,7 @@ The list below outlines the properties included in most events. See the 'Track (
| `affiliation` | A comma-separated list of order tags. Untagged orders use `Shopify`. | String |
| `cart_id` | The ID of the Shopify cart. | String |
| `checkout_id` | The ID of the checkout session. | String |
-| `context\['Google Analytics'].clientId` | The user's Google Analytics Client ID. | String |
+| `context['Google Analytics'].clientId` | The user's Google Analytics Client ID. | String |
| `context.ip` | The user's IP address. | String |
| `coupon` | A comma-separated string of discount coupons used, if applicable. | String |
| `currency` | The currency of the order. | String |
@@ -205,7 +205,7 @@ The list below outlines the properties included in most events. See the 'Track (
| `total` | The total value of the order. | Float |
| `userId` | Chosen user identifier, defaulting to Shopify Customer ID | String |
-> info "The `revenue` property is available only with the Order Completed event"
+> info "The revenue property is available only with the Order Completed event"
> The `revenue` property is only available with the Order Completed event and requires you to opt in through the Littledata application. Revenue is a reserved property in many Segment destinations. Opting in overrides the `total` property sent to Google Analytics.
## Product properties
diff --git a/src/connections/sources/catalog/libraries/website/shopify/index.md b/src/connections/sources/catalog/libraries/website/shopify/index.md
index 1fd0868f9d..25d8ca3dbe 100644
--- a/src/connections/sources/catalog/libraries/website/shopify/index.md
+++ b/src/connections/sources/catalog/libraries/website/shopify/index.md
@@ -8,7 +8,7 @@ This Shopify Source lets you send [Shopify Web Pixel API Standard Events](https:
This Source is a free [Shopify App Extension](https://shopify.dev/docs/apps/app-extensions){:target="_blank"} which can be installed using your Shopify Store's Admin interface.
-#### Overview
+## Overview
Once installed and enabled, Segment collects events from the user's browser and sends them to your Segment 'Shopify' Source in real time.
diff --git a/src/connections/sources/cross-domain.md b/src/connections/sources/cross-domain.md
index 442badb2de..2bc67249e9 100644
--- a/src/connections/sources/cross-domain.md
+++ b/src/connections/sources/cross-domain.md
@@ -44,8 +44,8 @@ The CNAME records for the above example will look like:
|TYPE | NAME | DOMAIN | VALUE|
|-----|-------|--------|--------|
-|CNAME| xid |example1.com|{your-cross-domain-id-service}.xid.segment.com|
-|CNAME| xid |example2.com|{your-cross-domain-id-service}.xid.segment.com|
+|CNAME| xid |example1.com|\{your-cross-domain-id-service\}.xid.segment.com|
+|CNAME| xid |example2.com|\{your-cross-domain-id-service\}.xid.segment.com|
*Note: Contact our implementation team for the exact address of your Cross-Domain ID service.*
@@ -59,9 +59,11 @@ Segment will verify that your subdomains have CNAME records set up correctly. Th
After validation, we will enable Cross-Domain Analytics on your Segment workspace and enabled sources. Once we give you the go ahead, you'll see two things happen when a user visits a domain from the same browser:
1. In the debugger, you'll see `Identify` calls with a Cross-Domain ID in the payload.
+

1. Subsequent events from that user will have a Cross-Domain ID context trait.
+

## Frequently Asked Questions
@@ -117,6 +119,7 @@ By default, Chrome does not block any cookies. Chrome does give the user two oth
#### Safari
Safari distinguishes between cookies from sites that a user has previously visited (second-party cookies) and cookies from sites which a user has not been to (third-party cookies).
+

By default, Safari blocks third-party cookies.
diff --git a/src/connections/spec/video.md b/src/connections/spec/video.md
index f39d40750d..ddbd5b6b6a 100644
--- a/src/connections/spec/video.md
+++ b/src/connections/spec/video.md
@@ -32,7 +32,7 @@ All playback events share the same event properties that describe information ab
| `content_pod_id`, `content_pod_ids` | String, Array[string] | The Content Pod Id(s) of the video/videos playing or about to be played in the video player. **For [Video Playback Started](#video-playback-started) events only**, you should send the plural form with an Array of unique pod IDs. For all other playback events, you should send the singular form with the ID of the current content pod playing at the time of the event. |
| `ad_asset_id` | String, Array[string] | The Ad Asset Id(s) of the ad/ads playing or about to be played in the video player. **For [Video Playback Started](#video-playback-started) events only**, you should send an Array of unique ad asset IDs. For all other playback events, you should send a string with the ID of the current ad asset playing at the time of the event. |
| `ad_pod_id` | String, Array[string] | The Ad Pod Id(s) of the ad/ads playing or about to be played in the video player. **For [Video Playback Started](#video-playback-started) events only**, you should send an Array of unique ad pod IDs. For all other playback events, you should send a string with the ID of the current ad pod playing at the time of the event. |
-| `ad_type` | Enum {`pre-roll`, `mid-roll`, `post-roll`} | The type of ad playing at the time of the event. Values can include `pre-roll`, `mid-roll`, and `post-roll`. |
+| `ad_type` | Enum \{`pre-roll`, `mid-roll`, `post-roll`\} | The type of ad playing at the time of the event. Values can include `pre-roll`, `mid-roll`, and `post-roll`. |
| `position` | Integer | The current index position **in seconds** of the playhead, including the duration of any ads seen (if available). If the playback is a livestream, check the documentation for relevant destinations for details on how to correctly pass the playhead position. |
| `total_length`| Integer | The total duration of the playback in seconds. This should include the duration of all your content and ad included in this playback session. For livestream playback, send `null`. |
| `bitrate` | Integer | The current `kbps`. |
@@ -713,12 +713,12 @@ All ad events share the same event properties that describe information about th
| `pod_id` | String | The unique ID of the ad pod. |
| `pod_position` | Integer | The position of the ad asset relative to other assets in the same pod. |
| `pod_length` | Integer | The number of ad assets the current ad pod contains. |
-| `type` | Enum {`pre-roll`, `mid-roll`, `post-roll`} | The ad type. You can send either `pre-roll`, `mid-roll`, or `post-roll`. |
+| `type` | Enum \{`pre-roll`, `mid-roll`, `post-roll`\} | The ad type. You can send either `pre-roll`, `mid-roll`, or `post-roll`. |
| `title` | String | The title of the video ad. |
| `publisher` | String | The ad creator, author, producer, or publisher. |
| `position` | Integer | The current index position, in seconds, of the playhead with respect to the length of the ad. |
| `total_length` | Integer | The total duration of the current ad asset in seconds. |
-| `load_type` | Enum {`linear`, `dynamic`} | `dynamic` if ads are loaded dynamically and `linear` if ads are same for all users. |
+| `load_type` | Enum \{`linear`, `dynamic`\} | `dynamic` if ads are loaded dynamically and `linear` if ads are same for all users. |
| `content` | Object[ContentEventObject] | For video destinations that require content metadata to be sent with ad events, you can send all the content metadata nested under this property (such as `content.asset_id` or `content.title`) as a Content Event Object. |
| `quartile` | Integer | For Video Ad Playing events, this property can be set to indicate when a specific ad quartile has been reached (1,2, or 3). If you are using a Segment client-side library to track your video events you don't need to send this property as Segment's libraries will automatically track quartiles. |
@@ -1173,5 +1173,6 @@ analytics.track('Video Playback Completed', {
```
Below is an example of how a playback that has three mid-roll ads interspersed within the content:
- 
+
+