Skip to content

Hubspot Mappings 2.0 docs #7038

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 19 commits into from
Sep 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
3d86539
add proxy issues
niallzato Sep 12, 2024
cef06d0
Update src/connections/sources/catalog/libraries/website/javascript/c…
niallzato Sep 12, 2024
56de705
Update src/connections/sources/catalog/libraries/website/javascript/c…
niallzato Sep 12, 2024
6c5d62e
Update src/connections/sources/catalog/libraries/website/javascript/c…
niallzato Sep 12, 2024
a20a251
Update src/connections/sources/catalog/libraries/website/javascript/c…
niallzato Sep 12, 2024
21d9377
Update src/connections/sources/catalog/libraries/website/javascript/c…
niallzato Sep 12, 2024
71c98ba
Update src/connections/sources/catalog/libraries/website/javascript/c…
niallzato Sep 12, 2024
8620637
Update src/connections/sources/catalog/libraries/website/javascript/c…
niallzato Sep 12, 2024
b08d529
Update src/connections/sources/catalog/libraries/website/javascript/c…
niallzato Sep 12, 2024
ae968d9
Update src/connections/sources/catalog/libraries/website/javascript/c…
niallzato Sep 12, 2024
0042b17
Merge pull request #7029 from segmentio/niall/proxy_faq
forstisabella Sep 13, 2024
b92ed08
first pass of rate limit and actionsv2 sections
forstisabella Sep 13, 2024
a52182f
[netlify-build]
forstisabella Sep 13, 2024
3a1bdb1
[netlify-build]
forstisabella Sep 13, 2024
9cebcb5
add custom object v2 callouts [netlify-build]
forstisabella Sep 13, 2024
b22da8e
fixed it [netlify-build]
forstisabella Sep 13, 2024
a8e6ef6
Merge branch 'master' into actions-hubspot-mappings-2.0
forstisabella Sep 16, 2024
ca2cbf8
Apply suggestions from code review
forstisabella Sep 16, 2024
7cd0cbd
Fix Cloudflare spelling
forstisabella Sep 16, 2024
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
14 changes: 14 additions & 0 deletions src/_includes/components/actions-fields.html
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,20 @@
</div>
{% endif %}

<!--- IG 9/2024 - PM wanted to call out that this specific HubSpot Cloud (Actions) Action can make multiple assosciations-->

{% if action.id == 'dMYued7r3VjK4c2gBWUTZi' %}
<div class="premonition info">
<div class="fa fa-check-circle"></div>
<div class="content">
<p class="header">You can use the Custom Object v2 Action to make multiple assosciations</p>
<p markdown=1>
For more information, see HubSpot's [Assosciate records](https://knowledge.hubspot.com/records/associate-records){:target="_blank”} documentation.
</p>
</div>
</div>
{% endif %}

{% if action.fields.size > 0 %}
<p class="button button-hollow" data-toggle="collapse" data-target=".settings-content-{{action.slug}}">Click to show / hide fields</p>
<div class="collapse settings-content-{{action.slug}} show">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,38 @@ HubSpot Cloud Mode (Actions) provides the following benefits over the classic Hu
> info ""
> To ensure that data is sent downstream, configure and enable at least one mapping to handle a connected sources event(s).

## Actions v2

> info "You can use the Custom Object v2 Action to send Sensitive Data to HubSpot"
> If you are participating in HubSpot's [Sensitive Data in HubSpot CRM beta](https://developers.hubspot.com/sensitive-data){:target="_blank"}, use the Custom Object v2 Action to send sensitive data to HubSpot.

Segment's v2 Actions, [Custom Object v2](/docs/connections/destinations/catalog/actions-hubspot-cloud/#custom-object-v2) and [Custom Event v2](/docs/connections/destinations/catalog/actions-hubspot-cloud/#custom-event-v2), support the following features:

- **Sync modes**: Control how Segment updates your downstream destination by selecting a sync mode, or a strategy for updating your downstream data
- **Dynamic dropdowns**: When creating or updating a mapping in the Segment app, the dropdown auto-populates all of the available properties directly from HubSpot.
- **Create and modify data**: Use Sync modes to create objects in your downstream destination without having to leave the Segment app.

> warning ""
> You might need to reauthorize your HubSpot account to use all of the features associated with v2 Actions.

### Sync modes
Sync modes allow users to define how Segment should update the data in your destination.

Available sync modes for the Custom Object v2 and Custom Event v2 Actions include:
- **Update**: Modify existing records in the destination without adding new ones.
- **Upsert**: Update existing records and add new ones, if necessary.
- **Add**: Add records to a list, segment, or journey.

{% include components/actions-fields.html %}

## Rate limits
HubSpot's [API rate limit](https://developers.hubspot.com/docs/api/usage-details#rate-limits){:target="_blank"} is 100 API calls per 10 seconds. While Segment implements retries for temporary issues, large data volumes sent simultaneously might exceed this limit and result in incomplete data transmission.

For customers with substantial data volumes, Segment recommends segmenting the data into smaller batches and scheduling transfers over an extended period of time. This approach ensures successful data transmission to HubSpot without encountering rate limits.

> info "HubSpot Associations might exacerbate rate limit issues"
> [HubSpot Associations](https://developers.hubspot.com/docs/api/crm/associations){:target="_blank"} often require additional API calls. When working with Associations, carefully plan your strategy and consider a more gradual approach to creating them, especially for large datasets, to avoid reaching your API call limit.


## Support for association between two custom object records in upsert custom object records
To associate two records, it's mandatory to have these three fields: **Search Fields to associate** , **ObjectType to associate**, and **Association Label**. If any of these three fields aren't configured, the association skips.
Expand Down
2 changes: 1 addition & 1 deletion src/connections/destinations/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ In order to override the default, check the destination settings pane in the Seg

## Sync modes

Sync mode allows users to define how changes in the source should send downstream to your destination. Depending on which destinations you set up in Segment, you may need to choose a sync mode for your data. This configuration determines how Segment updates your destination based on the source data.
Sync modes allow users to define how changes in the source should send downstream to your destination. Depending on which destinations you set up in Segment, you may need to choose a sync mode for your data. This configuration determines how Segment updates your destination based on the source data.

The available sync modes can vary based on the destination, integration type, and actions within the destination. For example, if you sync customer data, you might have the option to Insert, Update, or Upsert records.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,56 @@ To add a CNAME record to your DNS settings:
3. Save your record. This might take some time to take effect, depending on your TTL settings.
4. Run `curl` on your domain to check if the proxy is working correctly.

## Common issues

These are some common issues that occur for customers implementing a custom proxy. This is not an exhaustive list, and these CloudFront or Cloudflare settings may change.

#### Cloudflare returning a 403 error

A 403 error can mean that you've misconfigured your Cloudflare CDN distribution. Try one of the following options to fix the error:

1. If you have a Cloudflare enterprise plan, create a Page Rule in Cloudflare so that Segment's CDN doesn't refuse the requests made through the Cloudflare Proxy. If `cdn.segment.com` is another CNAME that resolves to `xxx.cloudfront.net`, you will need to use a Page Rule in Cloudflare to override the host header to match the hostname for proxy requests. For more information about overriding the host header, see Cloudflare’s [Rewrite Host headers](https://developers.cloudflare.com/rules/page-rules/how-to/rewrite-host-headers/){:target="_blank”} docs.


2. For customers who are not on the Cloudflare Enterprise plan, use Cloudflare Workers. Workers usually run on the main domain (for example, `www.domain.com`), but if you want Workers to run on a subdomain, like `http://segment.domain.com`, you must record the subdomain in your DNS. For more information, see Cloudflare's [Routes and domains](https://developers.cloudflare.com/workers/platform/routes#subdomains-must-have-a-dns-record){:target="_blank”} documentation.

When creating a Worker you can use this example provided by Cloudflare in their [Bulk origin override](https://developers.cloudflare.com/workers/examples/bulk-origin-proxy){:target="_blank”} documentation with the origins set to:

```ts
const ORIGINS = {
"yourcdndomain.com": "cdn.segment.com",
}
```

#### Cloudflare CORS issue

In order to resolve a CORS OPTIONS pre-request fetch error, you must specify "Strict (SSL-Only Origin Pull)" as a Cloudflare Page rule for the `api.segment.io` proxy. Please see Cloudflare's [Encryption modes](https://support.cloudflare.com/hc/en-us/articles/200170416-End-to-end-HTTPS-with-Cloudflare-Part-3-SSL-options#h_065d742e-8c0b-4ed4-8fb5-037e10fe5f9a){:target="_blank”} documentation for more details.

#### CloudFront Proxy returning a 403 error

If your CloudFront Proxy is returing a 403 error, the following change in CloudFront might resolve the issue:

```ts
Before:
Cache Based on Selected Request Headers: All

After:
Cache Based on Selected Request Headers: None
```

Alternatively, this setting may solve your issue:

```ts
Before:
Origin request policy: AllViewer

After:
Origin request policy: None
```

### CloudFront CORS issue

To resolve a CORS issue, you might need to add a referrer header in the request you send to Segment. Follow AWS's [How do I resolve the "No 'Access-Control-Allow-Origin' header is present on the requested resource" error from CloudFront?](https://aws.amazon.com/premiumsupport/knowledge-center/no-access-control-allow-origin-error/){:target="_blank”} guide, which explains how to add a referrer header.

## Self-hosting Analytics.js

Expand Down