diff --git a/src/_includes/components/actions-fields.html b/src/_includes/components/actions-fields.html index 5687d57a86..1cd9f40c29 100644 --- a/src/_includes/components/actions-fields.html +++ b/src/_includes/components/actions-fields.html @@ -129,6 +129,20 @@ {% endif %} + + +{% if action.id == 'dMYued7r3VjK4c2gBWUTZi' %} +
+
+
+

You can use the Custom Object v2 Action to make multiple assosciations

+

+ For more information, see HubSpot's [Assosciate records](https://knowledge.hubspot.com/records/associate-records){:target="_blank”} documentation. +

+
+
+{% endif %} + {% if action.fields.size > 0 %}

Click to show / hide fields

diff --git a/src/connections/destinations/catalog/actions-hubspot-cloud/index.md b/src/connections/destinations/catalog/actions-hubspot-cloud/index.md index 4973dbbf78..a82a17c64a 100644 --- a/src/connections/destinations/catalog/actions-hubspot-cloud/index.md +++ b/src/connections/destinations/catalog/actions-hubspot-cloud/index.md @@ -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. diff --git a/src/connections/destinations/index.md b/src/connections/destinations/index.md index 17d6a1fede..4ef6b2da3f 100644 --- a/src/connections/destinations/index.md +++ b/src/connections/destinations/index.md @@ -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. diff --git a/src/connections/reverse-etl/manage-retl.md b/src/connections/reverse-etl/manage-retl.md index 33f6b96a3b..b03b681ad5 100644 --- a/src/connections/reverse-etl/manage-retl.md +++ b/src/connections/reverse-etl/manage-retl.md @@ -31,8 +31,14 @@ To check the status of your extractions: * The load results - how many successful records were synced as well as how many records were updated, deleted, or are new. 5. If your sync failed, click the failed reason to get more details on the error and view sample payloads to help troubleshoot the issue. - +## Automatic retry handling + +Segment automatically retries events that were extracted from your data warehouse but failed to load for up to 14 days or 5 syncs following a partially successful sync or a sync failure. + +Segment checks for the latest changes in your data before loading the failed records on a subsequent (automatically scheduled or manually triggered) sync to ensure the data loaded into Segment isn’t stale and only the latest version of the data is loaded to destination. If the error causing the load failure is coming from an upstream tool, you can fix the error in the upstream tool to resolve the load error on a subsequent sync. + +> warning "Syncs with intervals less than one hour may not see failed events on the sync immediately following failed record" +> Syncs with intervals less than or equal to one hour may not see failed events right away, as Segment's internal systems take up to one hour to retry events that initially failed. ## Reset syncs Reverse ETL uses the Unique Identifier column to detect data changes, like new, updated, and deleted records. If you encounter an error, you can reset Segment’s tracking of this column and force Segment to manually add all records from your dataset. diff --git a/src/connections/sources/catalog/libraries/website/javascript/custom-proxy.md b/src/connections/sources/catalog/libraries/website/javascript/custom-proxy.md index 8d20c8c225..3a55e232b5 100644 --- a/src/connections/sources/catalog/libraries/website/javascript/custom-proxy.md +++ b/src/connections/sources/catalog/libraries/website/javascript/custom-proxy.md @@ -180,18 +180,18 @@ To add a CNAME record to your DNS settings: ## Common issues -These are some common issues that occur for customers implementing a custom proxy. This not an exhaustive list, and these CloudFront or CloudFlare settings may change. +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 +#### Cloudflare returning a 403 error -When you encounter a 403 error, can mean that you've misconfigured your CloudFlare CDN distribution. Try one of the following options to fix the 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. +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. +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: +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 = { @@ -199,9 +199,9 @@ const ORIGINS = { } ``` -#### CloudFlare CORS issue +#### 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. +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