Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
8258660
chore: Update to simplify serialization of batch 7.2
CristhianMotoche Oct 14, 2025
ef35ffa
chore: Update docs to improve formatting after migration
CristhianMotoche Oct 14, 2025
ff8e719
chore: Update docs to improve formatting after migration
CristhianMotoche Oct 14, 2025
23fbd61
chore Modify warning title to be serialized correctly
CristhianMotoche Oct 14, 2025
ea70b5e
chore Modify warning title to be serialized correctly
CristhianMotoche Oct 14, 2025
c487232
chore Modify warning title to be serialized correctly
CristhianMotoche Oct 14, 2025
25a4590
chore Modify warning title to be serialized correctly
CristhianMotoche Oct 14, 2025
ae3fdaf
chore Modify warning title to be serialized correctly
CristhianMotoche Oct 14, 2025
f97bba0
Updated for clarity and style guide consistency
sade-wusi Oct 16, 2025
9a3f0f7
style guide clean up
sade-wusi Oct 16, 2025
0d1426d
style guide clean up
sade-wusi Oct 16, 2025
58b498a
style guide clean up
sade-wusi Oct 16, 2025
5ed21d8
style guide clean up + alt text fix for images
sade-wusi Oct 16, 2025
74a0125
style guide clean up + alt text fix for image
sade-wusi Oct 16, 2025
0ade561
Fix typo
sade-wusi Oct 16, 2025
22f027b
style guide clean up
sade-wusi Oct 16, 2025
25c6fd1
style guide clean up
sade-wusi Oct 16, 2025
e0fd315
Update Pendo documentation for clarity and consistency
sade-wusi Oct 16, 2025
51f286d
Revise Planhat documentation for clarity
sade-wusi Oct 16, 2025
3ea36d6
Fix formatting and grammar in PostHog setup guide
sade-wusi Oct 16, 2025
94906ae
wording clean up
sade-wusi Oct 16, 2025
cdd782f
more edits
sade-wusi Oct 16, 2025
8d884c8
where did you come from??
sade-wusi Oct 16, 2025
5cd294c
Merge branch 'develop' into DOCSPLAT-2990
sade-wusi Oct 16, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions src/connections/destinations/catalog/correlated/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,30 +3,30 @@ title: Correlated Destination
id: 60df6d4c038b872f10c54801
---

[Correlated](https://www.getcorrelated.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_new"} is the first product-led revenue platform built to help you and your sales teams take action based on how customers are using your product.
[Correlated](https://www.getcorrelated.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank"} is the first product-led revenue platform built to help you and your sales teams take action based on how customers are using your product.

This destination is maintained by Correlated. For any issues with the destination, [contact the Correlated Support team](mailto:support@getcorrelated.com).
This destination is maintained by Correlated. For any issues with the destination, [contact the Correlated support team](mailto:support@getcorrelated.com){:target="_blank"}.

> success ""
> Set up a free account with Correlated by visiting their [website](https://docs.getcorrelated.com/docs/setting-up-your-account){:target="_new"}.
> To set up a free account with Correlated, visit their [website](https://docs.getcorrelated.com/docs/setting-up-your-account){:target="_blank"}.

## Getting Started
## Getting started

### Connect with OAuth
1. Log in to the Correlated application.
2. Go to [Correlated integrations](https://app.getcorrelated.com/integrations){:target="_blank"} and select the Segment integration.
3. Click **Connect to Segment** to connect with OAuth.
4. Select the relevant Sources that you want to include (Correlated recommends that you include your website and application)
4. Select the relevant sources that you want to include. Correlated recommends that you include your website and application.

### Connect with an API Key
1. From the Destinations catalog page in the Segment App, click **Add Destination**.
2. Search for "Correlated" in the Destinations Catalog, and select the "Correlated" destination.
3. Choose which Source should send data to the "Correlated" destination.
3. Choose which source should send data to the "Correlated" destination.
4. Go to [Correlated integrations](https://app.getcorrelated.com/integrations){:target="_blank"} and click on the "Segment" integration.
5. Copy the "Segment API key".
6. Enter the "Segment API Key" in the "Correlated" destination settings in Segment.
6. Enter the Segment API key in the "Correlated" destination settings in Segment.

## Supported Methods
## Supported methods

Correlated supports the following methods.

Expand Down Expand Up @@ -76,4 +76,4 @@ If you aren't familiar with the Segment Spec, take a look at the [Track method d
analytics.track('Login Button Clicked')
```

Segment sends Track calls to Correlated as a `track` event. Track events should be flattened whenever possible. For example, rather than "Button Click" as a track event with "Onboarding Form Submit" as a property, use "Onboarding Form Submit Button Click". `Product Events` can be filtered and grouped by identify traits or group traits.
Segment sends Track calls to Correlated as a `track` event. Track events should be flattened whenever possible. For example, rather than "Button Click" as a track event with "Onboarding Form Submit" as a property, use "Onboarding Form Submit Button Click". `Product Events` can be filtered and grouped by identify traits or group traits.
189 changes: 97 additions & 92 deletions src/connections/destinations/catalog/marketo-v2/index.md

Large diffs are not rendered by default.

49 changes: 25 additions & 24 deletions src/connections/destinations/catalog/marketo/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,26 +3,27 @@ title: Marketo Destination
strat: adobe
---

## Getting Started
## Getting started

When you enable Marketo in the Segment web app, your changes appear in the Segment CDN in about 45 minutes, and then Analytics.js starts asynchronously loading Marketo's Munchkin onto your page. This means you should remove Marketo's snippet from your page.
+ Marketo starts automatically recording visitor information.

### Important Note:
Our client-side and server-side destinations each require **different** credentials for authentication. Read through the information below on `identify` calls for further information.
> info ""
> Marketo starts automatically recording visitor information.

> warning ""
> Client-side and server-side destinations each require **different** credentials for authentication. Read through [Identify](#identify) for further information.

## Page and Track

For [`Page`](/docs/connections/spec/page/) or [`Track`](/docs/connections/spec/track/) methods, Segment uses [Marketo's Munchkin.js `visitWebPage` method](http://developers.marketo.com/javascript-api/lead-tracking/api-reference/#munchkin_visitwebpage){:target="_blank"}. The URL is built from the Segment event and properties object into the form Marketo expects, so no need to worry about doing that yourself.
For [Page](/docs/connections/spec/page/) or [Track](/docs/connections/spec/track/) methods, Segment uses [Marketo's Munchkin.js `visitWebPage` method](http://developers.marketo.com/javascript-api/lead-tracking/api-reference/#munchkin_visitwebpage){:target="_blank"}. The URL is built from the Segment event and properties object into the form Marketo expects, so no need to worry about doing that yourself.

To associate Track events to a particular Lead in Marketo from a server side library, you will need to pass the Munchkin.js cookie with your track calls.
To associate Track events to a particular Lead in Marketo from a server side library, you need to pass the Munchkin.js cookie with your track calls.

## Identify

### Client-side

When you call [`identify`](/docs/connections/spec/identify/) on Analytics.js, we call Marketo's [`associateLead`](http://developers.marketo.com/documentation/websites/lead-tracking-munchkin-js/){:target="_blank"}. Marketo **requires an email address** for this function, so if the `traits` object you include in [`identify`](/docs/connections/spec/identify/) doesn't have an email, the request won't go through. Marketo's client-side library, [Munchkin](http://developers.marketo.com/documentation/websites/lead-tracking-munchkin-js/){:target="_blank"}, **requires your API private key** for authentication along with your email, so make sure that you have provided it in your Segment settings. We will not change the casing of traits on client-side identify calls.
When you call [Identify](/docs/connections/spec/identify/) on Analytics.js, Segment calls Marketo's [`associateLead`](http://developers.marketo.com/documentation/websites/lead-tracking-munchkin-js/){:target="_blank"}. Marketo **requires an email address** for this function, so if the `traits` object you include in [Identify](/docs/connections/spec/identify/) doesn't have an email, the request won't go through. Marketo's client-side library, [Munchkin](http://developers.marketo.com/documentation/websites/lead-tracking-munchkin-js/){:target="_blank"}, **requires your API private key** for authentication along with your email, so make sure that you have provided it in your Segment settings. Segment doesn't change the casing of traits on client-side identify calls.

```javascript
analytics.identify('1234', {
Expand All @@ -33,21 +34,21 @@ analytics.identify('1234', {
});
```

In order to properly sign the `associateLead` request while keeping your account and data secure, we make a request to our API that calculates the appropriate SHA1 security hash for the user you're identifying. We use this hash to sign the `associateLead` request to Marketo.
In order to properly sign the `associateLead` request while keeping your account and data secure, Segment makes a request to our API that calculates the appropriate SHA1 security hash for the user you're identifying. This hash is used to sign the `associateLead` request to Marketo.

Note that we will automatically send `userId` as a trait. Normally, the `userId` was sent as an `id` inside the traits but Marketo silently ignores that field as they use it for their own purposes. So if you create a custom field inside Marketo for `userId`, your leads will automatically have that field populated.
Note that Segment automatically sends `userId` as a trait. Normally, the `userId` was sent as an `id` inside the traits but Marketo silently ignores that field as they use it for their own purposes. So if you create a custom field inside Marketo for `userId`, your leads automatically have that field populated.

### Server Side

When you can [`identify`](/docs/connections/spec/identify/) with a `traits` object on any of the server-side languages, we make a call to Marketo's `syncLead` SOAP API action. This call either creates or a updates `traits` on a lead based on the email address either in `userId` or `traits.email`.
When you call [Identify](/docs/connections/spec/identify/) with a `traits` object on any of the server-side languages, Segment makes a call to Marketo's `syncLead` SOAP API action. This call either creates or a updates `traits` on a lead based on the email address either in `userId` or `traits.email`.

We will attempt to PascalCase server-side traits. So if you send `secondFavoriteColor` as a trait, we will convert that to `SecondFavoriteColor`, so you should set the trait **API name** in Marketo to `SecondFavoriteColor`. If you send the trait as `second_favorite_color`, we will convert that to `Second_favorite_color`, so you should set the API name to be `Second_favorite_color` (this is less than ideal; however, we plan to update this behavior in v2 of our Marketo destination, so stay tuned!).
Segment attempts to PascalCase server-side traits. So if you send `secondFavoriteColor` as a trait it's converted to `SecondFavoriteColor`, so you should set the trait **API name** in Marketo to `SecondFavoriteColor`. If you send the trait as `second_favorite_color` it's converted to `Second_favorite_color`, so you should set the API name to be `Second_favorite_color`.

Note that leads can only be synced every 30 seconds using the SOAP API. If you exceed the allowed request amount, you will see `Exceeded lock attempts` errors in your debugger.
Note that leads can only be synced every 30 seconds using the SOAP API. If you exceed the allowed request amount, the `Exceeded lock attempts` errors appear in your debugger.

Our server side destination with Marketo **requires your encryption key** along with your email for authentication, make sure you have provided it in your Segment settings.
The server-side destination with Marketo **requires your encryption key** along with your email for authentication, make sure you have provided it in your Segment settings.

Remember to provide an email with every call as either the `userId` or as a trait labeled "email". Here's a java example of that:
Remember to provide an email with every call as either the `userId` or as a trait labeled "email". Here's a Java example of that:

```java
Analytics.identify("hj2kf92ds212",
Expand All @@ -58,21 +59,21 @@ Analytics.identify("hj2kf92ds212",

Marketo uses cookies to keep track of visitors and their sessions while visiting your website. The cookie data is stored in the visitor's browser, and is sent along to Marketo every time a new event occurs. This allows them to show a single unique lead between multiple page reloads.

Your servers also have access to this cookie, so they can re-use it when you send server-side events to Segment. If you don't use the existing cookie Segment will use either the userId or sessionId to make the server-side request to Marketo. When we create a new cookie, the client-side and server-side events from the same user will look like two distinct leads when viewed in Marketo. The cookieId takes precedence over all other keys, so if you send both the cookieId and the userId - the cookieId will match first and the userId for that lead will be updated.
Your servers also have access to this cookie, so they can re-use it when you send server-side events to Segment. If you don't use the existing cookie, Segment uses either the `userId` or `sessionId` to make the server-side request to Marketo. When a new cookie is created, the client-side and server-side events from the same user look like two distinct leads when viewed in Marketo. The `cookieId` takes precedence over all other keys, so if you send both the `cookieId` and the `userId` - the `cookieId` matches first and the `userId` for that lead is updated.

To associate leads in server-side Marketo, there are currently three options with Segment:

1. Pass your Marketo cookies to Segment.
2. Use the userId or sessionId when associating leads in Marketo.
3. Ignore the additional visitors generated by passing different types of ids for each call (i.e. cookieId once, then the userId for the same user the second time).
2. Use the `userId` or `sessionId` when associating leads in Marketo.
3. Ignore the additional visitors generated by passing different types of IDs for each call - `cookieId` once, then the `userId` for the same user the second time.

If you choose to pass the cookie with your calls, it will look like this:

```
id:561-HYG-937&token:_mch-marketo.com-1374552656411-90718
```

If you want our server-side destination to use your user's Marketo Cookie, pass it to us in the `context['Marketo'].marketoCookie` object.
If you want our server-side destination to use your user's Marketo Cookie, pass it to Segment in the `context['Marketo'].marketoCookie` object.

Here's a Ruby example:

Expand All @@ -92,9 +93,9 @@ Analytics.identify(
)
```

**Note:** If you choose to use the cookie approach, make sure to send the cookie along in your `track` calls as well, as Marketo will need it on subsequent calls to tie activity to that user.
**Note:** If you choose to use the cookie approach, make sure to send the cookie along in your Track calls as well. Marketo needs it on subsequent calls to tie activity to that user.

A `track` call might look like this:
A Track call might look like this:

```ruby
Analytics.track(
Expand All @@ -113,10 +114,10 @@ Analytics.track(
)
```

For more information about syncronising your Marketo leads, [visit their documentation](http://developers.marketo.com/documentation/soap/synclead/){:target="_blank"}.
For more information about syncronising your Marketo leads, [visit the Marketo documentation](http://developers.marketo.com/documentation/soap/synclead/){:target="_blank"}.

### Custom Fields
### Custom fields

To create a custom field in Marketo, follow Marketo's [documentation for creating a custom field](http://docs.marketo.com/display/public/DOCS/Create+a+Custom+Field+in+Marketo){:target="_blank"}. Be sure that the **API Name** is `PascalCase`'d, as our destination will account for Marketo's Pascal trait standards.
To create a custom field in Marketo, follow Marketo's [documentation for creating a custom field](http://docs.marketo.com/display/public/DOCS/Create+a+Custom+Field+in+Marketo){:target="_blank"}. Be sure that the **API Name** is `PascalCase`'d, as the destination accounts for Marketo's Pascal trait standards.

For instance, if you configure `SomeTrait` in the **API Name** field (the **Name** value does not matter), you can pass in this field as `someTrait`, and we will convert this to `SomeTrait` when sending into Marketo. Note that if you configured **API Name** to be `someTrait`, and passed it in as `someTrait` in your call, this would fail to send.
For instance, if you configure `SomeTrait` in the **API Name** field (the **Name** value does not matter), you can pass in this field as `someTrait`. Segment converts this to `SomeTrait` when sending into Marketo. Note that if you configured **API Name** to be `someTrait` and passed it in as `someTrait` in your call, this would fail to send.
Loading
Loading