diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 21d5d88aff..54b4ebc68b 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -75,7 +75,7 @@ Sources pages check if the source is a cloud-app, then include information about
## Edit pages
-Content with in each `.md` file is markdown. For information about styling, and available extensions, see `_src/utils/formatguide.md` or the live version [here](https://segment.com/docs/utils/formatguide).
+Content with in each `.md` file is markdown. For information about styling, and available extensions, see `_src/utils/formatguide.md` or the live version in the [utils section of the docs](/docs/utils/formatguide).
## Building a preview
diff --git a/scripts/catalog/updateSources.js b/scripts/catalog/updateSources.js
index 6f72f202a7..f873d19274 100644
--- a/scripts/catalog/updateSources.js
+++ b/scripts/catalog/updateSources.js
@@ -14,28 +14,28 @@ const PAPI_URL = "https://api.segmentapis.com";
const regionalSupport = yaml.load(fs.readFileSync(path.resolve(__dirname, `../../src/_data/regional-support.yml`)));
-// This file keeps a list of known test sources that show up in the system.
+// This file keeps a list of known test sources that show up in the system.
// Because we don't have a status value for sources, they end up showing in our catalog.
// We use this below to prevent them from being written to yaml.
const testSources = yaml.load(fs.readFileSync(path.resolve(__dirname, `../../src/_data/catalog/test_sources.yml`)));
const updateSources = async () => {
- let sources = []; // Initialize an empty array to hold all sources
- let sourcesUpdated = []; // Initialize an empty array to hold all sources that have been updated
- let regionalSourcesUpdated = []; // Initialize an empty array to hold updated source regional information
- let nextPageToken = "MA=="; // Set the initial page token to the first page
- let categories = new Set(); // Initialize an empty set to hold all categories
- let sourceCategories = []; // Initialize an empty array to hold all source categories
-
-
+ let sources = []; // Initialize an empty array to hold all sources
+ let sourcesUpdated = []; // Initialize an empty array to hold all sources that have been updated
+ let regionalSourcesUpdated = []; // Initialize an empty array to hold updated source regional information
+ let nextPageToken = "MA=="; // Set the initial page token to the first page
+ let categories = new Set(); // Initialize an empty set to hold all categories
+ let sourceCategories = []; // Initialize an empty array to hold all source categories
+
+
// Get all sources from the catalog
while (nextPageToken !== undefined) {
const res = await getCatalog(`${PAPI_URL}/catalog/sources/`, nextPageToken);
sources = sources.concat(res.data.sourcesCatalog);
nextPageToken = res.data.pagination.next;
}
-
+
// Sort the sources alphabetically
sources.sort((a, b) => {
if (a.name.toLowerCase() < b.name.toLowerCase()) {
@@ -46,7 +46,7 @@ const updateSources = async () => {
}
return 0;
});
-
+
// Set the list of categories for libraries
const libraryCategories = [
'server',
@@ -55,7 +55,7 @@ const updateSources = async () => {
'roku',
'website'
];
-
+
// Here, define some sources that are real, but that we want to hide.
const hiddenSources = [
'amp',
@@ -63,12 +63,12 @@ const updateSources = async () => {
'twilio-event-streams-beta',
'ibm-watson-assistant'
];
-
+
// More regional stuff
const regionalSourceEndpoint = regionalSupport.sources.endpoint;
const regionalSourceRegion = regionalSupport.sources.region;
-
-
+
+
// Loop through all sources and create a new object with the data we want
sources.forEach(source => {
let slug = slugify(source.name, "sources");
@@ -77,14 +77,14 @@ const updateSources = async () => {
let regions = ['us'];
let endpoints = ['us'];
let mainCategory = source.categories[0] ? source.categories[0].toLowerCase() : '';
-
+
if (libraryCategories.includes(mainCategory)) {
url = `connections/sources/catalog/libraries/${mainCategory}/${slug}`;
} else {
url = `connections/sources/catalog/cloud-apps/${slug}`;
mainCategory = 'cloud-app';
}
-
+
// Sort the settings alphabetically
settings.sort((a, b) => {
if (a.name.toLowerCase() < b.name.toLowerCase()) {
@@ -95,19 +95,19 @@ const updateSources = async () => {
}
return 0;
});
-
+
if (hiddenSources.includes(slug)) {
hidden = true;
}
-
+
if (regionalSourceEndpoint.includes(slug)) {
endpoints.push('eu');
}
-
+
if (regionalSourceRegion.includes(slug)) {
regions.push('eu');
}
-
+
// If the source ID is in the list of test sources, skip it.
// If it's not, add it to the list of sources to be written to yaml.
if (testSources.includes(source.id)) {
@@ -128,13 +128,15 @@ const updateSources = async () => {
url: source.logos.default
},
categories: source.categories,
+ status: source.status,
+ partnerOwned: source.partnerOwned
};
sourcesUpdated.push(updatedSource);
doesCatalogItemExist(updatedSource);
}
-
+
source.categories.reduce((s, e) => s.add(e), categories);
-
+
// Sources don't yet have regional information in the Public API, so we write that info here.
let updatedRegional = {
id: source.id,
@@ -147,7 +149,7 @@ const updateSources = async () => {
};
regionalSourcesUpdated.push(updatedRegional);
});
-
+
const sourceArray = Array.from(categories);
sourceArray.forEach(category => {
sourceCategories.push({
@@ -164,12 +166,12 @@ const updateSources = async () => {
return 0;
});
});
-
+
const options = {
noArrayIndent: false
};
const todayDate = new Date().toISOString().slice(0, 10);
-
+
// Create source catalog YAML file
let output = "# AUTOGENERATED FROM PUBLIC API. DO NOT EDIT\n";
output += "# sources last updated " + todayDate + " \n";
@@ -177,7 +179,7 @@ const updateSources = async () => {
items: sourcesUpdated
}, options);
fs.writeFileSync(path.resolve(__dirname, `../../src/_data/catalog/sources.yml`), output);
-
+
// Create source-category mapping YAML file
output = "# AUTOGENERATED FROM PUBLIC API. DO NOT EDIT\n";
output += "# source categories last updated " + todayDate + " \n";
@@ -185,15 +187,15 @@ const updateSources = async () => {
items: sourceCategories
}, options);
fs.writeFileSync(path.resolve(__dirname, `../../src/_data/catalog/source_categories.yml`), output);
-
+
// Create regional support YAML file
output = yaml.dump({
sources: regionalSourcesUpdated
}, options);
fs.writeFileSync(path.resolve(__dirname, `../../src/_data/catalog/regional-supported.yml`), output);
-
+
console.log("sources done");
};
- exports.updateSources = updateSources;
\ No newline at end of file
+ exports.updateSources = updateSources;
diff --git a/scripts/catalog/utilities.js b/scripts/catalog/utilities.js
index 7de088ec91..dd24bcd0ff 100644
--- a/scripts/catalog/utilities.js
+++ b/scripts/catalog/utilities.js
@@ -133,11 +133,7 @@ const doesCatalogItemExist = (item) => {
let content = `---\ntitle: '${item.display_name} Source'\nhidden: true\n---`;
if (!docsPath.includes('/sources/')) {
- let betaFlag = '';
- if (item.status === 'PUBLIC_BETA') {
- betaFlag = 'beta: true\n';
- }
- content = `---\ntitle: '${item.display_name} Destination'\nhidden: true\nid: ${item.id}\npublished: false\n${betaFlag}---\n`;
+ content = `---\ntitle: '${item.display_name} Destination'\nhidden: true\nid: ${item.id}\npublished: false\n`;
}
fs.mkdirSync(docsPath);
@@ -172,4 +168,4 @@ exports.getCatalog = getCatalog;
exports.getConnectionModes = getConnectionModes;
exports.isCatalogItemHidden = isCatalogItemHidden;
exports.sanitize = sanitize;
-exports.doesCatalogItemExist = doesCatalogItemExist;
\ No newline at end of file
+exports.doesCatalogItemExist = doesCatalogItemExist;
diff --git a/src/_data/catalog/beta_sources.yml b/src/_data/catalog/beta_sources.yml
deleted file mode 100644
index 3da5cc4704..0000000000
--- a/src/_data/catalog/beta_sources.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-# This file is manually generated.
-# Add the ids of beta sources to give them a beta flag on the catalog page.
-# (/docs/connections/sources/catalog)
-
-- 8aF29Uq46F
-- QhEUZnE5uF
-- Zd5BXedXsa
-- glwy6LwOVo
-- 3x07B5Dn5h
-- DY0B0Q2Gce
-- n8YgCndi75
-- 9TYqEh3nMe
-- xqegKCQA0W
-- L9XPA9n2Mc
-- kpDbTUR9oD
-- wFC7PGNwGR
-- vMEJCURfHh
-- EjYD7n6dOa
-- VETiUX9u66
-- NC2jsEkA8Y
-- o9OyD6xsVJ
-- ODf0vA6dcH
-- YWOGVbyMVz
-- CwGEZ7eCcA
-- xeZMgSrtAQ
-- VShGHAfvlr
\ No newline at end of file
diff --git a/src/_data/catalog/destination_categories.yml b/src/_data/catalog/destination_categories.yml
index 1072a02e0f..57f782065d 100644
--- a/src/_data/catalog/destination_categories.yml
+++ b/src/_data/catalog/destination_categories.yml
@@ -1,5 +1,5 @@
# AUTOGENERATED FROM PUBLIC API. DO NOT EDIT
-# destination categories last updated 2024-08-09
+# destination categories last updated 2024-08-13
items:
- display_name: A/B Testing
slug: a-b-testing
diff --git a/src/_data/catalog/destinations.yml b/src/_data/catalog/destinations.yml
index d543880451..30921852a3 100644
--- a/src/_data/catalog/destinations.yml
+++ b/src/_data/catalog/destinations.yml
@@ -1,5 +1,5 @@
# AUTOGENERATED FROM PUBLIC API. DO NOT EDIT
-# destination data last updated 2024-08-09
+# destination data last updated 2024-08-13
items:
- id: 637e8d185e2dec264895ea89
display_name: 1Flow
@@ -36524,14 +36524,14 @@ items:
- id: 645d5fc12eb891cf0a93fe4b
display_name: Facebook Custom Audiences (Actions)
name: Facebook Custom Audiences (Actions)
- slug: facebook-custom-audiences-actions
+ slug: actions-facebook-custom-audiences
hidden: false
endpoints:
- US
regions:
- us-west-2
- eu-west-1
- url: connections/destinations/catalog/facebook-custom-audiences-actions
+ url: connections/destinations/catalog/actions-facebook-custom-audiences
previous_names:
- Facebook Custom Audiences (Actions)
website: >-
@@ -55982,7 +55982,7 @@ items:
hidden: false
defaultTrigger: type = "track"
fields:
- - id: fpEPheR55yvpnq88L8K3ec
+ - id: toeo6DkmR4TurSDDTA52Yg
sortOrder: 0
fieldKey: eventName
label: Event Name
@@ -56000,7 +56000,7 @@ items:
choices: null
dynamic: true
allowNull: false
- - id: wCVPg4gyJqhmgtErxSAuuQ
+ - id: nEfX7HqVaDDDf34hyUkp81
sortOrder: 1
fieldKey: occurredAt
label: Event Timestamp
@@ -56016,7 +56016,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: v9nTD3jmLZPa5dY3gNmtLu
+ - id: roeoyrLDU3srEGgHqXb7iK
sortOrder: 2
fieldKey: email
label: Email Address
@@ -56038,7 +56038,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: qYnXLtEcYtZDYD3iaNHnT9
+ - id: 3KeVEodUpq8S2xDBXGxo6T
sortOrder: 3
fieldKey: utk
label: User Token
@@ -56052,7 +56052,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: mZydC3nPkefiunmiwpt8VF
+ - id: nTRoSPpPHV7rZg1nfayjG4
sortOrder: 4
fieldKey: objectId
label: Object ID
@@ -56067,7 +56067,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: k2N8PTLbG557KpCcZZ3ZE4
+ - id: k8VvRX3vHHuuNW9q1vSesf
sortOrder: 5
fieldKey: properties
label: Event Properties
@@ -56092,7 +56092,7 @@ items:
hidden: false
defaultTrigger: null
fields:
- - id: 457ZnRrz9rNK4M6CoJYPdU
+ - id: bJojfxbzTTJSDfWUSDpSKV
sortOrder: 0
fieldKey: createNewCustomRecord
label: Create Custom Object Record if Not Found
@@ -56109,7 +56109,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: iypkuYGsJZfwp3dU37cbhy
+ - id: rmPaVeDHWGxcfAkcypHKa8
sortOrder: 1
fieldKey: customObjectSearchFields
label: Custom Object Search Fields
@@ -56124,7 +56124,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: dFMzC1Juk5V4H6DQGNvxgb
+ - id: 7sCp2mi65et1Td3TDus7EK
sortOrder: 2
fieldKey: objectType
label: Object Type
@@ -56142,7 +56142,7 @@ items:
choices: null
dynamic: true
allowNull: false
- - id: 8EuxTFRVPfHoDMyuW3NgnZ
+ - id: 8aDdwvCPjDBvCUYpXKBkEn
sortOrder: 3
fieldKey: properties
label: Properties
@@ -56160,7 +56160,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: m8jexqn9rWyhJqphKqBMLe
+ - id: dS9CZ1H2J8HPTPASxQ8b9h
sortOrder: 4
fieldKey: searchFieldsToAssociateCustomObjects
label: Search Fields to Associate custom Object
@@ -56176,7 +56176,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: w5ikpqfHs39uWxX9X7ikhf
+ - id: icVoxPFvnTiohrToqeaQXL
sortOrder: 5
fieldKey: toObjectType
label: ObjectType to associate
@@ -56194,7 +56194,7 @@ items:
choices: null
dynamic: true
allowNull: false
- - id: si1t7rk3RvmP57F8R2g7JK
+ - id: 8na43jJAZ6A29TR4saLucm
sortOrder: 6
fieldKey: associationLabel
label: Association Label
@@ -56214,7 +56214,7 @@ items:
hidden: false
defaultTrigger: type = "identify"
fields:
- - id: 2kZzgmkRTJjsB9EpVLVKGb
+ - id: 7hcPDXC11barQh582r7PAK
sortOrder: 0
fieldKey: email
label: Email
@@ -56232,7 +56232,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 859iBUN6YsjH8QqUukmaQH
+ - id: jZaJgmo3y2cFQYHYGerXFi
sortOrder: 1
fieldKey: company
label: Company Name
@@ -56246,7 +56246,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: eLBHspKZvr9PiioojFNsS4
+ - id: 98cCWQKHZ71hQNndy5PCDK
sortOrder: 2
fieldKey: firstname
label: First Name
@@ -56266,7 +56266,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: xr3uwXoWKSu5h9UsKT4WVD
+ - id: jP3h5xrJiJw5RBhEQegSDS
sortOrder: 3
fieldKey: lastname
label: Last Name
@@ -56286,7 +56286,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 2xikAkHsDXrn1Nj16auznJ
+ - id: aE3cnBYNWcJ38UdhyWRjrV
sortOrder: 4
fieldKey: phone
label: Phone
@@ -56300,7 +56300,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: gEDsQiday52nAZNpMAqEKu
+ - id: 4vghby9QdNeQcN7Eg6Drsp
sortOrder: 5
fieldKey: address
label: Street Address
@@ -56314,7 +56314,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: kGFCNkhVbEoZ6U92YBtnUS
+ - id: 4BsKMTC9eQhGtiTBN6jd8z
sortOrder: 6
fieldKey: city
label: City
@@ -56328,7 +56328,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: mPFQ8411m6jQyJyD6uDret
+ - id: 2xXf5BNyhD7bvkUQCd1Afa
sortOrder: 7
fieldKey: state
label: State
@@ -56342,7 +56342,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 2m6X9dYKMXPduE8fhBwA8P
+ - id: fSGZarH5XsWWYZaBfowBSH
sortOrder: 8
fieldKey: country
label: Country
@@ -56356,7 +56356,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 4hqK642MQpa58TMDMARe4f
+ - id: n5cHAGkszcZvkSQUfSucNh
sortOrder: 9
fieldKey: zip
label: Postal Code
@@ -56376,7 +56376,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: xB2nx4DK3a6tgQJAnmdHSA
+ - id: mYqiWZTWWiVLFHNxwqrTPt
sortOrder: 10
fieldKey: website
label: Website
@@ -56390,7 +56390,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: sio4AT1b2rMU3CPJnZjrd8
+ - id: aSRzt4wYiuo4ZG5u841svr
sortOrder: 11
fieldKey: lifecyclestage
label: Lifecycle Stage
@@ -56406,7 +56406,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: fAL1NF48zXSLA88A6CXMxp
+ - id: 4kVst2h8DZbA6zPU6jQTwA
sortOrder: 12
fieldKey: properties
label: Other properties
@@ -56424,7 +56424,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: gejqVjYJhn6XqcKhRQqdGZ
+ - id: 8kHsRWCJAnMhMyc1hLBMnV
sortOrder: 13
fieldKey: enable_batching
label: Send Batch Data to HubSpot
@@ -56449,7 +56449,7 @@ items:
hidden: false
defaultTrigger: type = "group"
fields:
- - id: fXXLpEGKDoERjyaaEzwhW
+ - id: bucBiJyiXGHCp8vnbLwHW9
sortOrder: 0
fieldKey: groupid
label: Unique Company Identifier
@@ -56473,7 +56473,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: mJqWCMVVgxQDShJQuaNGu4
+ - id: jjyHmS6u7tL5ZeZcYcF2m8
sortOrder: 1
fieldKey: createNewCompany
label: Create Company if Not Found
@@ -56490,7 +56490,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 9ak6TSdps1FG2Ri6HkS5aY
+ - id: 4tWKovLXkTgFhRH9hckCbH
sortOrder: 2
fieldKey: associateContact
label: Associate Contact with Company
@@ -56509,7 +56509,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: iY45Uns9sESBARF8V2moJ2
+ - id: fq4eMqdfCNjbxYGmf83KbH
sortOrder: 3
fieldKey: companysearchfields
label: Company Search Fields
@@ -56526,7 +56526,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: bcL8H9Y1gYixVn4kUEEk43
+ - id: cvtwjMDR5cXEmfyLdxgBM2
sortOrder: 4
fieldKey: name
label: Company Name
@@ -56540,7 +56540,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: b4ceyDdMErAYNGQQJfoAEm
+ - id: a5dS7GeLB4ZLegzMfnnvMt
sortOrder: 5
fieldKey: description
label: Company Description
@@ -56554,7 +56554,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: A626ZMFpH8g9KPeot9X1W
+ - id: eqNUmdLstoadsdcAzWhx2r
sortOrder: 6
fieldKey: address
label: Street Address
@@ -56568,7 +56568,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: pvNTui8izEtnL73W5HrBmd
+ - id: xsy8QEAKiVTDPeQhwQif4C
sortOrder: 7
fieldKey: city
label: City
@@ -56582,7 +56582,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: eXYy4ZjLcCGuo1yPJadPhT
+ - id: i2YuARc741tHFvEm2iDCh2
sortOrder: 8
fieldKey: state
label: State
@@ -56596,7 +56596,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 4kPeh6T7MAzrRt3FzTf5yh
+ - id: oi9fSsxDcMSnUggNXcQVwh
sortOrder: 9
fieldKey: zip
label: Postal Code
@@ -56616,7 +56616,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: unxTCRqh2LKkLhrMUQricK
+ - id: 8UErDTur4YwgYaBhvH4yaW
sortOrder: 10
fieldKey: domain
label: Domain
@@ -56630,7 +56630,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: hsVcEbBsJd9iwbTU6gyNyo
+ - id: d1uQ1b4wFsc4iarj7iG8Ns
sortOrder: 11
fieldKey: phone
label: Phone
@@ -56644,7 +56644,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: sST2HDwRdXHgE3ULSrSWuE
+ - id: mLVLtPuxVgdPvdPUWuxES5
sortOrder: 12
fieldKey: numberofemployees
label: Number of Employees
@@ -56658,7 +56658,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: fidzNXRcPPt6QHEEXt7g2q
+ - id: 8tT8mtRajcxz6kHMk3vm3d
sortOrder: 13
fieldKey: industry
label: Industry
@@ -56672,7 +56672,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: dthQnQhuZAQ7toBmtEp4Kn
+ - id: wnNMANnkacjy52LjVUBrZV
sortOrder: 14
fieldKey: lifecyclestage
label: Lifecycle Stage
@@ -56688,7 +56688,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: afYq4EdW52UupPX3CLWs5F
+ - id: 2Mm9LRz4G88e8B9bFCTZL1
sortOrder: 15
fieldKey: properties
label: Other Properties
@@ -56709,16 +56709,16 @@ items:
dynamic: false
allowNull: false
- id: dMYued7r3VjK4c2gBWUTZi
- name: Upsert Object
+ name: Custom Object
slug: upsertObject
description: >-
- Upsert a record of any Object type to HubSpot and optionally assocate it
- with another record of any Object type.
+ Add, create or update records of any Object type to HubSpot, and
+ optionally assocate that record with other records of any Object type.
platform: CLOUD
hidden: false
defaultTrigger: null
fields:
- - id: rutv5FCbtnY3ybyUtpefEM
+ - id: n4yR731wRHzoCewFqYj4nm
sortOrder: 0
fieldKey: object_details
label: Object Details
@@ -56730,7 +56730,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 2pkTFQJEFjaboEvsTXq1oD
+ - id: k2otUczSks1X4WS9yG4349
sortOrder: 1
fieldKey: properties
label: Properties
@@ -56742,9 +56742,9 @@ items:
choices: null
dynamic: true
allowNull: false
- - id: e7TK9ZggZcuTjK4QheHzj7
+ - id: niaJNoh7xwyG4hbMaigJSa
sortOrder: 2
- fieldKey: sensitiveProperties
+ fieldKey: sensitive_properties
label: Sensitive Properties
type: OBJECT
description: Sensitive Properties to set on the record.
@@ -56754,7 +56754,7 @@ items:
choices: null
dynamic: true
allowNull: false
- - id: w3yq2kEaVYM7U3u7wVVgqN
+ - id: 5zQGCBwX33opbupc7RUFBS
sortOrder: 3
fieldKey: association_sync_mode
label: Associated Record Sync Mode
@@ -56774,7 +56774,7 @@ items:
value: read
dynamic: false
allowNull: false
- - id: 5jEUJ27KoyV2gid1dAkZfH
+ - id: 7rmFUtdTJ5MS9EwiEC52o4
sortOrder: 4
fieldKey: associations
label: Associations
@@ -56786,6 +56786,64 @@ items:
choices: null
dynamic: false
allowNull: false
+ - id: mRG4EEHrTjKLyAfzbKhUZ9
+ name: Custom Event
+ slug: customEvent
+ description: Send Custom Events to HubSpot
+ platform: CLOUD
+ hidden: false
+ defaultTrigger: null
+ fields:
+ - id: hYuaczJcqtewcmae6SYu7z
+ sortOrder: 0
+ fieldKey: event_name
+ label: Event Name
+ type: STRING
+ description: The name of the event to send to Hubspot.
+ placeholder: ''
+ required: true
+ multiple: false
+ choices: null
+ dynamic: true
+ allowNull: false
+ - id: aMqpW21ruPeMb13StjBGP1
+ sortOrder: 1
+ fieldKey: record_details
+ label: Associated Record Details
+ type: OBJECT
+ description: Details of the record to associate the event with
+ placeholder: ''
+ required: true
+ multiple: false
+ choices: null
+ dynamic: false
+ allowNull: false
+ - id: agPnnKb9D9XaYdiLAmbNZ6
+ sortOrder: 2
+ fieldKey: properties
+ label: Properties
+ type: OBJECT
+ description: Properties to send with the event.
+ placeholder: ''
+ required: false
+ multiple: false
+ choices: null
+ dynamic: true
+ allowNull: false
+ - id: hWutWFtVU732SfYFMd8izR
+ sortOrder: 3
+ fieldKey: occurred_at
+ label: Event Timestamp
+ type: DATETIME
+ description: The time when this event occurred.
+ placeholder: ''
+ defaultValue:
+ '@path': $.timestamp
+ required: false
+ multiple: false
+ choices: null
+ dynamic: false
+ allowNull: false
presets: []
partnerOwned: false
- id: 631a1c2bfdce36a23f0a14ec
@@ -67529,7 +67587,7 @@ items:
hidden: false
defaultTrigger: type = "identify"
fields:
- - id: kgB8Ye3eNHJG7mqLrex9MJ
+ - id: bRLnC5Mw6zqoTFwchKts2L
sortOrder: 0
fieldKey: email
label: Email
@@ -67545,7 +67603,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: cFFvFik1r3Y6f4u1xaCfjV
+ - id: nrUBdaeMmGBD5VNMV1Nwxo
sortOrder: 1
fieldKey: enable_batching
label: Batch Data to Klaviyo
@@ -67557,7 +67615,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 5anhv2dHNzLhxcacfaUjUp
+ - id: 3H9zbkQwHRgrv8WGsJ2pT7
sortOrder: 2
fieldKey: phone_number
label: Phone Number
@@ -67574,7 +67632,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: rbV6Cd4A2oUN6D3RbaZtSC
+ - id: 66WBmSfUSCCBfJc8DTQ57X
sortOrder: 3
fieldKey: external_id
label: External ID
@@ -67589,7 +67647,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 27oBxL9SgP67rEnzAk8Ljr
+ - id: kjqNVkyt56G9WnKR1fNwZN
sortOrder: 4
fieldKey: first_name
label: First Name
@@ -67603,7 +67661,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: bhRM2i2XhkXXFLrEkDsrXZ
+ - id: kdwuBAnx1nRNU6vyLUgrRd
sortOrder: 5
fieldKey: last_name
label: Last Name
@@ -67617,7 +67675,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: dBpcvweNsoXdZ1Nztd7txD
+ - id: 4NvKYsAoHfeNXto6Bhe3YD
sortOrder: 6
fieldKey: organization
label: Organization
@@ -67633,7 +67691,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: mEpbtQe8crHDQxEtznrJuZ
+ - id: on7v5gAELgcwvK4ZJb7F9e
sortOrder: 7
fieldKey: title
label: Title
@@ -67647,7 +67705,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: gCCLaXJu3grmBpE2zNAN93
+ - id: iqxooi291vk6Fmj5GwZEYv
sortOrder: 8
fieldKey: image
label: Image
@@ -67661,7 +67719,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: hikxxC1Uu5R2aKZyT5GSf5
+ - id: abHHShuWiArzHSsPKzjD7J
sortOrder: 9
fieldKey: location
label: Location
@@ -67684,7 +67742,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 6tW7iUfc6QKqANd3K9PURE
+ - id: pPBkxnksZgZyKHVCcPP6bu
sortOrder: 10
fieldKey: properties
label: Properties
@@ -67700,7 +67758,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: fwesA8Qp5ReXbWYTkBPdvT
+ - id: dgPwaBFkgTuhkdmySWi63R
sortOrder: 11
fieldKey: list_id
label: List
@@ -67712,7 +67770,7 @@ items:
choices: null
dynamic: true
allowNull: false
- - id: gi8yWP8Zst7evU56sjtsEe
+ - id: x7nVuj9deAMXEQSJfbrEry
sortOrder: 14
fieldKey: list_identifier
label: Existing List ID
@@ -67726,7 +67784,7 @@ items:
choices: null
dynamic: true
allowNull: false
- - id: 9yGqnjaH5YEfkV9KbSnsj2
+ - id: wZDR8SQjmePGDEZDrMwjJX
sortOrder: 15
fieldKey: list_name
label: Name of list to create
@@ -67738,7 +67796,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: sSRrHQRHZJJopm7HVh3XW9
+ - id: jy51U1Aq6P3aST7VsvUkJ3
sortOrder: 16
fieldKey: retlOnMappingSave
label: Connect to a static list in Klaviyo
@@ -67761,7 +67819,7 @@ items:
hidden: false
defaultTrigger: type = "track"
fields:
- - id: iVvT8wcV5e7pdCKChY19pZ
+ - id: vqgDr8C4tCTkSTXonzwJkt
sortOrder: 0
fieldKey: profile
label: Profile
@@ -67773,7 +67831,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: xtoXpRuMwR39jo2f3kThZ7
+ - id: bXVwKLN3nDdC2nFFecmruV
sortOrder: 1
fieldKey: properties
label: Properties
@@ -67787,7 +67845,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 8q1YWKkNhU1Ru5JEBpdLAf
+ - id: uXsqauyzBB5cvJbsQuohNg
sortOrder: 2
fieldKey: time
label: Time
@@ -67806,7 +67864,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: wZJFG4Tmvs4cSh9k2cm8E5
+ - id: erMjHBypceVyF2EcnvqJqK
sortOrder: 3
fieldKey: value
label: Value
@@ -67820,7 +67878,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: rn2T8zZw4YH4t68RWHDAdG
+ - id: o4znHAffHb5sur9mySEQBB
sortOrder: 4
fieldKey: unique_id
label: Unique ID
@@ -67840,7 +67898,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: bG7zYXyafin16xp4D2Sacm
+ - id: f42mpLVbxoujMd38amEK3S
sortOrder: 5
fieldKey: products
label: Products
@@ -67852,6 +67910,19 @@ items:
choices: null
dynamic: false
allowNull: false
+ - id: qCVGRJHiJrtC7RUSE8kwxj
+ sortOrder: 6
+ fieldKey: event_name
+ label: Event Name
+ type: STRING
+ description: Name of the event. This will be used as the metric name in Klaviyo.
+ placeholder: ''
+ defaultValue: Order Completed
+ required: false
+ multiple: false
+ choices: null
+ dynamic: false
+ allowNull: false
- id: f5syVWBeSA4KrrH3Yv5Q2N
name: Track Event
slug: trackEvent
@@ -67860,7 +67931,7 @@ items:
hidden: false
defaultTrigger: type = "track"
fields:
- - id: bHUDdcqB7EAGyKchQKWs46
+ - id: vCE1MBgiur1U5VTKMeCRcK
sortOrder: 0
fieldKey: profile
label: Profile
@@ -67872,7 +67943,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: hCgsbVorDYwgTCTMUGHsDS
+ - id: 9zpDB5j1sFXxxisvFStyuh
sortOrder: 1
fieldKey: metric_name
label: Metric Name
@@ -67886,7 +67957,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: a5fMnzUVMAtST6xBWZBB2n
+ - id: cjvcMiDfbRd6FaNRgjRSRH
sortOrder: 2
fieldKey: properties
label: Properties
@@ -67900,7 +67971,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 6Sj8j5oauEaKdifsFKToZZ
+ - id: sQXGZzAkkDBQGJkaJmya2s
sortOrder: 3
fieldKey: time
label: Time
@@ -67919,7 +67990,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: fLVVnbb78NWXAvFvaFzvam
+ - id: aYfTbbVEtC6YLyw89CYB7M
sortOrder: 4
fieldKey: value
label: Value
@@ -67933,7 +68004,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: k3uhLA48oZwtLcJJfWSmjn
+ - id: uonAjETeAHVSWGLvKkj87m
sortOrder: 5
fieldKey: unique_id
label: Unique ID
@@ -67961,7 +68032,7 @@ items:
hidden: false
defaultTrigger: event = "Audience Exited"
fields:
- - id: prqNt8bdDcdVfv92L6WGv3
+ - id: pcEyvKqfjSRLUGsywUhkaW
sortOrder: 0
fieldKey: email
label: Email
@@ -67975,7 +68046,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: ekgrXq3p4RbujULXZq1wG5
+ - id: iWjd3zadxbXRERyFcJ6WoV
sortOrder: 1
fieldKey: external_id
label: External ID
@@ -67989,8 +68060,25 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: kGATU2qAspvsUAskBTTd5N
+ - id: 9p5sWC3ZQ7XuZ2qEADr52D
sortOrder: 3
+ fieldKey: phone_number
+ label: Phone Number
+ type: STRING
+ description: >-
+ Individual's phone number in E.164 format. If SMS is not enabled and if
+ you use Phone Number as identifier, then you have to provide one of
+ Email or External ID.
+ placeholder: ''
+ defaultValue:
+ '@path': $.context.traits.phone
+ required: false
+ multiple: false
+ choices: null
+ dynamic: false
+ allowNull: false
+ - id: fJyeWLhTDNt26HivEeWf3n
+ sortOrder: 4
fieldKey: enable_batching
label: Batch Data to Klaviyo
type: BOOLEAN
@@ -68010,7 +68098,7 @@ items:
hidden: false
defaultTrigger: event = "Audience Entered"
fields:
- - id: 9XJTjboBfbBxnonzrkYSku
+ - id: 8qsDJwzd5UwFCwgQtophNq
sortOrder: 0
fieldKey: email
label: Email
@@ -68024,8 +68112,25 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 5s4Xt1hP1RzX3FT8V8yUya
- sortOrder: 2
+ - id: 59xyBc8Brx3fLYFTeNM1YA
+ sortOrder: 1
+ fieldKey: phone_number
+ label: Phone Number
+ type: STRING
+ description: >-
+ Individual's phone number in E.164 format. If SMS is not enabled and if
+ you use Phone Number as identifier, then you have to provide one of
+ Email or External ID.
+ placeholder: ''
+ defaultValue:
+ '@path': $.context.traits.phone
+ required: false
+ multiple: false
+ choices: null
+ dynamic: false
+ allowNull: false
+ - id: v6ZkZMgqskZqgPa9yX5aCG
+ sortOrder: 3
fieldKey: external_id
label: External ID
type: STRING
@@ -68038,8 +68143,8 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 8JyG3McJ5X73pYBwQe8QEZ
- sortOrder: 3
+ - id: qi3sbwbBRPNXor9KrqkqVp
+ sortOrder: 4
fieldKey: enable_batching
label: Batch Data to Klaviyo
type: BOOLEAN
@@ -68051,8 +68156,8 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: sSpxzRridLW1EfGvppkdQZ
- sortOrder: 5
+ - id: bJjiMAA6yppp9bzggE1Ejo
+ sortOrder: 6
fieldKey: first_name
label: First Name
type: STRING
@@ -68065,8 +68170,8 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 6hqzPHH8TrTW2GLeoYF2v8
- sortOrder: 6
+ - id: mSfesQxmStxGJZ7MQVTwvs
+ sortOrder: 7
fieldKey: last_name
label: Last Name
type: STRING
@@ -68079,8 +68184,8 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: tG5gGEiLVXcXjEjyA6GURp
- sortOrder: 7
+ - id: 2kJAPadwf45xgnEHq5VZUv
+ sortOrder: 8
fieldKey: image
label: Image
type: STRING
@@ -68093,8 +68198,8 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: igPTZPQhm1dVRJBcTm8dwD
- sortOrder: 8
+ - id: wU67kj4TSCG2KttZhQByWH
+ sortOrder: 9
fieldKey: title
label: Title
type: STRING
@@ -68107,8 +68212,8 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 8EiWEFfTPfMSuvQ9vxxPCP
- sortOrder: 9
+ - id: trn6Fe4UFzwSVAu3p61USV
+ sortOrder: 10
fieldKey: organization
label: Organization
type: STRING
@@ -68123,8 +68228,8 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 9kR65UwAU42VBkH3LNe7i2
- sortOrder: 10
+ - id: 29YPZ6e8K1RhgkiKgG41E1
+ sortOrder: 11
fieldKey: location
label: Location
type: OBJECT
@@ -68146,8 +68251,8 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: tXk7aXmYJufVimC2WMb8JY
- sortOrder: 11
+ - id: 72Vyt4Ugb34qHJeg2X798o
+ sortOrder: 12
fieldKey: properties
label: Properties
type: OBJECT
@@ -68170,7 +68275,7 @@ items:
hidden: false
defaultTrigger: event = "Identify"
fields:
- - id: jNB2XzxP7oCW9qFmAz4er2
+ - id: uvX3BxT1WNMKb9jWbCwjxv
sortOrder: 0
fieldKey: email
label: Email
@@ -68184,7 +68289,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: stwndf3fa7NX92kHgZtGFB
+ - id: kxv1sHqTJAQKPF5ZGTDLDe
sortOrder: 1
fieldKey: external_id
label: External ID
@@ -68199,7 +68304,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: aBg1gbD3btiN9FjKoUaVnE
+ - id: fPxyQZRsyJttZFTCry96cb
sortOrder: 2
fieldKey: list_id
label: List
@@ -68211,7 +68316,7 @@ items:
choices: null
dynamic: true
allowNull: false
- - id: k65itfzwHJMM8Jgs6Rrvt4
+ - id: irjgB5JVKbsQ18F6JdPANw
sortOrder: 3
fieldKey: enable_batching
label: Batch Data to Klaviyo
@@ -68224,6 +68329,23 @@ items:
choices: null
dynamic: false
allowNull: false
+ - id: 888Je3FviUxCtXcwRkRGEc
+ sortOrder: 4
+ fieldKey: phone_number
+ label: Phone Number
+ type: STRING
+ description: >-
+ Individual's phone number in E.164 format. If SMS is not enabled and if
+ you use Phone Number as identifier, then you have to provide one of
+ Email or External ID.
+ placeholder: ''
+ defaultValue:
+ '@path': $.traits.phone
+ required: false
+ multiple: false
+ choices: null
+ dynamic: false
+ allowNull: false
- id: hrZ9JVS64P91hUzaT6wLPm
name: Subscribe Profile
slug: subscribeProfile
@@ -68232,7 +68354,7 @@ items:
hidden: false
defaultTrigger: type = "track" and event = "User Subscribed"
fields:
- - id: 4XFnDMCHqaHB6wbRtb5yuK
+ - id: hLvQZ6UpSj6bCHFQMYvP5R
sortOrder: 0
fieldKey: email
label: Email
@@ -68254,7 +68376,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: usGYu7N7BRbtdabxvMqfSt
+ - id: obT42fx4vyu6wgUEvZHt31
sortOrder: 1
fieldKey: phone_number
label: Phone Number
@@ -68276,7 +68398,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: brGjjbLnvesAhLhBPPfZYP
+ - id: 6kDYaFKfovY4BaiMYdhux1
sortOrder: 2
fieldKey: list_id
label: List Id
@@ -68291,7 +68413,7 @@ items:
choices: null
dynamic: true
allowNull: false
- - id: 3N6PL1cajHLVrE4sHUmxW8
+ - id: vdnxVXNwZDacdGEoeuHDS8
sortOrder: 3
fieldKey: custom_source
label: Custom Source ($source)
@@ -68308,7 +68430,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: gcmVCZMArLMWgfHTTZ2mA6
+ - id: cFaergybbtGKKsn7ywART
sortOrder: 4
fieldKey: consented_at
label: Consented At
@@ -68322,7 +68444,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 8WPSMDboKQdPtxG7Wvne9z
+ - id: 5ZwaBMPavftqzCTi5T2bMu
sortOrder: 5
fieldKey: enable_batching
label: Batch Data to Klaviyo
@@ -68342,7 +68464,7 @@ items:
hidden: false
defaultTrigger: type = "track" and event = "User Unsubscribed"
fields:
- - id: 5TQyJdUKXpa9rCWpA3JAaL
+ - id: eQTihtmkoFaFSsTWnCVHZM
sortOrder: 0
fieldKey: email
label: Email
@@ -68364,7 +68486,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: cvrcETvJD7CtCtsmT4hMhW
+ - id: sDn4R2zoWyzpBdBVBbBmaJ
sortOrder: 1
fieldKey: phone_number
label: Phone Number
@@ -68386,7 +68508,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 3n4CSL9D8p9oU38uYbXc5w
+ - id: BzCjpPrWrzbie7qftSk2t
sortOrder: 2
fieldKey: list_id
label: List Id
@@ -68400,7 +68522,7 @@ items:
choices: null
dynamic: true
allowNull: false
- - id: pNdHKaws6TPXBJ8WCb57Ks
+ - id: kSsmY9BdjYkY71H7ThkxcW
sortOrder: 3
fieldKey: enable_batching
label: Batch Data to Klaviyo
@@ -70021,7 +70143,7 @@ items:
hidden: false
defaultTrigger: type = "track"
fields:
- - id: ttZFa3ePvTMVgpiKiEKRxb
+ - id: ms7151nfocV6o3SSDGJtEy
sortOrder: 0
fieldKey: conversionHappenedAt
label: Timestamp
@@ -70038,7 +70160,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: qDa2X6fpjD2HjGRCLKr7aV
+ - id: jhbpGcydKqD6CXqdnt6Bz4
sortOrder: 1
fieldKey: conversionValue
label: Conversion Value
@@ -70057,7 +70179,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 9vnTyhN6sQKsn83mbbfRtt
+ - id: dMtBhyAV6S5wzQSTkG1zjq
sortOrder: 2
fieldKey: eventId
label: Event ID
@@ -70073,7 +70195,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 3vFYDU8SiJU7JkRVfcbEfM
+ - id: dNFNaSGpDhkYnshaYVgViG
sortOrder: 3
fieldKey: email
label: Email
@@ -70090,7 +70212,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: c38o7gni9dsLvQ2mMNvZLp
+ - id: rccrWapaSbmEXLb5gFfXxn
sortOrder: 4
fieldKey: linkedInUUID
label: LinkedIn First Party Ads Tracking UUID
@@ -70107,7 +70229,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: bxz3ZiYN69JtKHRUMV1ZzR
+ - id: 21mBVYkuBWqMybZRvdg7nt
sortOrder: 5
fieldKey: acxiomID
label: Acxiom ID
@@ -70121,7 +70243,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: nQrNduKvXEDzeZLiCFpetj
+ - id: tedwaFr9TZXroohSboGqA
sortOrder: 6
fieldKey: oracleID
label: Oracle ID
@@ -70136,7 +70258,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: oEHnop4FE7g1K3v58mXKUH
+ - id: pX76XhUEzxGSJuDz5bke7F
sortOrder: 7
fieldKey: userInfo
label: User Info
@@ -70150,8 +70272,8 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 8XbbzvWqfHS2CnP5xroUnv
- sortOrder: 8
+ - id: n4MERbsro71XDMjhYxQHAQ
+ sortOrder: 10
fieldKey: adAccountId
label: Ad Account
type: STRING
@@ -70162,8 +70284,8 @@ items:
choices: null
dynamic: true
allowNull: false
- - id: a9cix4ajiPCkRrzK2GskF9
- sortOrder: 9
+ - id: 3LTwAbdfcaWWy1jfV6bmKP
+ sortOrder: 11
fieldKey: campaignId
label: Add Campaigns to Conversion
type: STRING
@@ -70178,8 +70300,8 @@ items:
choices: null
dynamic: true
allowNull: false
- - id: xmmAibWFnzdjAQRtmVhPnp
- sortOrder: 10
+ - id: bg16V7hYY13dRWqmiKw5Ps
+ sortOrder: 12
fieldKey: conversionRuleId
label: Existing Conversion Rule ID
type: STRING
@@ -70192,8 +70314,8 @@ items:
choices: null
dynamic: true
allowNull: false
- - id: sqRRMDCBS72wqKcj3x1M6n
- sortOrder: 11
+ - id: eSL5HpDVMziqyR8UPctZBj
+ sortOrder: 13
fieldKey: name
label: Name
type: STRING
@@ -70204,8 +70326,8 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 9Rvza87eBc7vQHXLK6HGEb
- sortOrder: 12
+ - id: tjMYBFMoqNufoGKknBNrYw
+ sortOrder: 14
fieldKey: conversionType
label: Conversion Type
type: STRING
@@ -70288,8 +70410,8 @@ items:
value: SALES_QUALIFIED_LEAD
dynamic: false
allowNull: false
- - id: wNkv9vT1FDVoXWkQKQcoSo
- sortOrder: 13
+ - id: nuEpAMc8AMiVpHrs2BXPCZ
+ sortOrder: 15
fieldKey: attribution_type
label: Attribution Type
type: STRING
@@ -70304,8 +70426,8 @@ items:
value: LAST_TOUCH_BY_CONVERSION
dynamic: false
allowNull: false
- - id: rv8ryaiuQC78cK9hnFSANv
- sortOrder: 14
+ - id: gP1KM73cps6TcF8FSMTYys
+ sortOrder: 16
fieldKey: post_click_attribution_window_size
label: Post-Click Attribution Window Size
type: NUMBER
@@ -70328,8 +70450,8 @@ items:
value: 90
dynamic: false
allowNull: false
- - id: 8FbAEBwkMEvBuR7tzp1ujs
- sortOrder: 15
+ - id: foiETdHgDxpXAgmkTuwfn3
+ sortOrder: 17
fieldKey: view_through_attribution_window_size
label: View-Through Attribution Window Size
type: NUMBER
@@ -70352,8 +70474,8 @@ items:
value: 90
dynamic: false
allowNull: false
- - id: xx4ATBDA2cawRcmrCNHV7P
- sortOrder: 16
+ - id: 5A4U7TkNqbE3Q9Be4ShESu
+ sortOrder: 18
fieldKey: onMappingSave
label: Create a Conversion Rule
type: OBJECT
@@ -93706,7 +93828,7 @@ items:
hidden: false
defaultTrigger: type = "track"
fields:
- - id: 8Q57srDWcEeVfaNw3vgBUm
+ - id: 5tMDrWS3u2z3nT2E1NL4nn
sortOrder: 0
fieldKey: event_name
label: Event name
@@ -93720,7 +93842,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: kXQPxKJKm1Sbgrx8VRd4Zt
+ - id: dVTbj2bYBhTevFgzFyT56u
sortOrder: 1
fieldKey: company_keys
label: Company keys
@@ -93732,7 +93854,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: syUBVxFsK3wmubUYVVFKYx
+ - id: kzjR4Eunn66NYf1RYNg2TH
sortOrder: 2
fieldKey: timestamp
label: Timestamp
@@ -93746,7 +93868,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: oCXdLyC4a1hnhgUuFtieUp
+ - id: aDZyL7eN6hSbFf9ovB6Znp
sortOrder: 3
fieldKey: user_keys
label: User keys
@@ -93754,14 +93876,14 @@ items:
description: 'Key-value pairs associated with a user (e.g. email: example@example.com)'
placeholder: ''
defaultValue:
- user_id:
+ userId:
'@path': $.userId
required: false
multiple: false
choices: null
dynamic: false
allowNull: false
- - id: oY3KENsJJN6t3cw3iMWkF1
+ - id: aLqZ8FnZuytLiVd9SYr6sf
sortOrder: 4
fieldKey: traits
label: Traits
@@ -93784,19 +93906,22 @@ items:
hidden: false
defaultTrigger: type = "identify"
fields:
- - id: pap313BJW93bR7PPXE4Y68
+ - id: g5iXNMFc4CeMpCvhvNEA6W
sortOrder: 0
fieldKey: company_keys
label: Company keys
type: OBJECT
description: 'Key-value pairs associated with a company (e.g. organization_id: 123456)'
placeholder: ''
+ defaultValue:
+ groupId:
+ '@path': $.context.groupId
required: true
multiple: false
choices: null
dynamic: false
allowNull: false
- - id: qigwmUkUmVtK94aiFcMZy6
+ - id: e5itnLSbMCDiQDd7ktTTPF
sortOrder: 1
fieldKey: company_name
label: Company name
@@ -93810,7 +93935,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: cB8vGm4LK8DrmmahbcqfkV
+ - id: p9RKn4rjGwCGWpkkp4Tmn1
sortOrder: 2
fieldKey: company_traits
label: Company traits
@@ -93822,7 +93947,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: mu5HHPBZg83byCqVURp8kS
+ - id: n1M2Dk4K45Md5Q6YMP4s1g
sortOrder: 3
fieldKey: timestamp
label: Timestamp
@@ -93836,7 +93961,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: jmVXg1fmRmmqhtfKqF8ih
+ - id: 2PpbybCe9PPXpNRsGbEVhk
sortOrder: 4
fieldKey: user_keys
label: User keys
@@ -93844,14 +93969,14 @@ items:
description: 'Key-value pairs associated with a user (e.g. email: example@example.com)'
placeholder: ''
defaultValue:
- user_id:
+ userId:
'@path': $.userId
required: true
multiple: false
choices: null
dynamic: false
allowNull: false
- - id: 7uWXMaVNmKfq1yCttGqEoG
+ - id: fc7xEbEygJdrHu7QXoTcfZ
sortOrder: 5
fieldKey: user_name
label: User name
@@ -93865,7 +93990,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 4voNJ67Ugmac4iWfaKW6ni
+ - id: vMKePBPfBqZkwVHXZ75Qsq
sortOrder: 6
fieldKey: user_traits
label: User traits
@@ -93878,19 +94003,6 @@ items:
dynamic: false
allowNull: false
presets:
- - actionId: eqNzhvvxtviHtCcgYMj9Ld
- name: Identify User
- fields:
- company_name:
- '@path': $.traits.company_name
- timestamp:
- '@path': $.timestamp
- user_keys:
- user_id:
- '@path': $.userId
- user_name:
- '@path': $.traits.name
- trigger: type = "identify"
- actionId: 2p77weRw8N7g3kHDC6Vbod
name: Track Event
fields:
@@ -93899,12 +94011,28 @@ items:
timestamp:
'@path': $.timestamp
user_keys:
- user_id:
+ userId:
'@path': $.userId
traits:
raw_event_name:
'@path': $.event
trigger: type = "track"
+ - actionId: eqNzhvvxtviHtCcgYMj9Ld
+ name: Identify User
+ fields:
+ company_keys:
+ groupId:
+ '@path': $.context.groupId
+ company_name:
+ '@path': $.traits.company_name
+ timestamp:
+ '@path': $.timestamp
+ user_keys:
+ userId:
+ '@path': $.userId
+ user_name:
+ '@path': $.traits.name
+ trigger: type = "identify"
partnerOwned: true
- id: 5c6cb84c9d413f0001804a42
display_name: ScopeAI
diff --git a/src/_data/catalog/destinations_private.yml b/src/_data/catalog/destinations_private.yml
index ee620ce6a6..c209704057 100644
--- a/src/_data/catalog/destinations_private.yml
+++ b/src/_data/catalog/destinations_private.yml
@@ -1,5 +1,5 @@
# AUTOGENERATED FROM PUBLIC API. DO NOT EDIT
-# destination data last updated 2024-08-09
+# destination data last updated 2024-08-13
items:
- id: 54521fd925e721e32a72eee1
display_name: Pardot
diff --git a/src/_data/catalog/regional-supported.yml b/src/_data/catalog/regional-supported.yml
index 1eaf2f704e..7d2b87c8b8 100644
--- a/src/_data/catalog/regional-supported.yml
+++ b/src/_data/catalog/regional-supported.yml
@@ -87,6 +87,15 @@ sources:
- us
endpoints:
- us
+ - id: E5Y3BqhAg2
+ display_name: Authvia
+ hidden: false
+ slug: authvia
+ url: connections/sources/catalog/cloud-apps/authvia
+ regions:
+ - us
+ endpoints:
+ - us
- id: R7eWaTLYUs
display_name: AutopilotHQ
hidden: false
diff --git a/src/_data/catalog/source_categories.yml b/src/_data/catalog/source_categories.yml
index c2c4401d85..5001e1a1b6 100644
--- a/src/_data/catalog/source_categories.yml
+++ b/src/_data/catalog/source_categories.yml
@@ -1,5 +1,5 @@
# AUTOGENERATED FROM PUBLIC API. DO NOT EDIT
-# source categories last updated 2024-08-09
+# source categories last updated 2024-08-13
items:
- display_name: A/B Testing
slug: a-b-testing
diff --git a/src/_data/catalog/sources.yml b/src/_data/catalog/sources.yml
index c78e3930e3..eddb3f265e 100644
--- a/src/_data/catalog/sources.yml
+++ b/src/_data/catalog/sources.yml
@@ -1,5 +1,5 @@
# AUTOGENERATED FROM PUBLIC API. DO NOT EDIT
-# sources last updated 2024-08-09
+# sources last updated 2024-08-13
items:
- id: 8HWbgPTt3k
display_name: .NET
@@ -177,6 +177,25 @@ items:
url: https://cdn.filepicker.io/api/file/qWgSP5cpS7eeW2voq13u
categories:
- Mobile
+ - id: E5Y3BqhAg2
+ display_name: Authvia
+ isCloudEventSource: true
+ slug: authvia
+ url: connections/sources/catalog/cloud-apps/authvia
+ hidden: false
+ regions:
+ - us
+ endpoints:
+ - us
+ source_type: cloud-app
+ description: >-
+ Authvia enables businesses to collect payments via text, chat and instant
+ messaging—the way your customers want to pay.
+ logo:
+ url: >-
+ https://cdn-devcenter.segment.com/cd43937e-5ffe-4b6c-aec4-8e79282e3575.svg
+ categories:
+ - Raw Data
- id: R7eWaTLYUs
display_name: AutopilotHQ
isCloudEventSource: true
diff --git a/src/_data/sidenav/main.yml b/src/_data/sidenav/main.yml
index 9ed6ac6a48..51679f9cca 100644
--- a/src/_data/sidenav/main.yml
+++ b/src/_data/sidenav/main.yml
@@ -184,8 +184,14 @@ sections:
section:
- path: /connections/reverse-etl
title: Reverse ETL Overview
+ - path: /connections/reverse-etl/setup
+ title: Set Up Reverse ETL
+ - path: /connections/reverse-etl/manage-retl
+ title: Manage Reverse ETL Syncs
+ - path: /connections/reverse-etl/system
+ title: Reverse ETL System
- path: /connections/reverse-etl/reverse-etl-catalog
- title: Reverse ETL Catalog
+ title: Reverse ETL Destination Catalog
- section_title: Reverse ETL Source Setup Guides
slug: connections/reverse-etl/reverse-etl-source-setup-guides
section:
diff --git a/src/_includes/components/actions-fields.html b/src/_includes/components/actions-fields.html
index 3e54b0d725..5687d57a86 100644
--- a/src/_includes/components/actions-fields.html
+++ b/src/_includes/components/actions-fields.html
@@ -140,12 +140,12 @@
-{% for field in action.fields %}
+{% for field in action.fields %}{% unless field.id == 'jYj1UxYzS5aJNU2Ue2gakK' or field.id == '2KMUXqzqudDytGbcBz2iwP' or field.id == '6VBmtsRbVxHVM61LtnFVwX' or field.id == 'q6eYyJGaCYcPSHeZPpaK5x' %}
{{field.label}}{% if field.required %}*{% endif %}
{% if field.type %}Type: {{field.type}} {%endif%}{{field.description | markdownify}}
-{%endfor%}
+{%endunless%}{%endfor%}
diff --git a/src/_includes/content/cloud-app-note.md b/src/_includes/content/cloud-app-note.md
index d6440fe1b3..07f04490da 100644
--- a/src/_includes/content/cloud-app-note.md
+++ b/src/_includes/content/cloud-app-note.md
@@ -2,11 +2,40 @@
{% assign currentIntegration = site.data.catalog.sources.items | where: "slug", currentSlug | first %}
{% if currentIntegration.url contains "cloud-apps" or page.path contains "cloud-apps" %}
{% if currentIntegration.isCloudEventSource %}
-
Good to know: Event Cloud source
-
The {{ page.title }} is an **event** source. This means that it sends data as events, which are behaviors or occurrences tied to a user and a point in time. Data from these sources can be loaded into your Segment warehouses, and **also** sent to Segment streaming destinations. [Learn more about cloud sources.](/docs/connections/sources/#cloud-apps)
-
-{% else %}
-
Good to know: Object Cloud source
The {{ page.title }} is an **object** source. This means that it sends information (traits) about a thing that exists and persists over time, such as a person or company, and which can be updated over time. Data from this source can only be exported directly to a warehouse, but it can then be used for further analysis. [Learn more about cloud sources.](/docs/connections/sources/#cloud-apps)
+
+
+
Source Info
+
+
The {{ page.title }} is an **Event Cloud** source. This means that it sends data as events, which are behaviors or occurrences tied to a user and a point in time. Data from these sources can be loaded into your Segment warehouses, and **also** sent to Segment streaming destinations. [Learn more about cloud sources.](/docs/connections/sources/#cloud-apps)
+ {% if currentIntegration.status == "PUBLIC_BETA" %}
This source is in Beta
{%endif%}
+
+ {% if currentIntegration.partnerOwned %}
+
Partner Owned
+
+
This integration is partner owned. Please reach out to the partner's support for any issues.
+
+ {% endif %}
+
+
+
+{% else %}
+
+
+
Source Info
+
+
The {{ page.title }} is an **Object Cloud** source. This means that it sends information (traits) about a thing that exists and persists over time, such as a person or company, and which can be updated over time. Data from this source can only be exported directly to a warehouse, but it can then be used for further analysis. [Learn more about cloud sources.](/docs/connections/sources/#cloud-apps)
+ {% if currentIntegration.status == "PUBLIC_BETA" %}
This source is in Beta
{%endif%}
+
+ {% if currentIntegration.partnerOwned %}
+
Partner Owned
+
+
This integration is partner owned. Please reach out to the partner's support for any issues.
Developer Center no longer accepts new components.
Segment is redeveloping the Developer Center and will launch a new version when complete. To stay up to date, add your contact information [here](https://airtable.com/shrT3b4C7agUEBKVS){:target="_blank"}.
\ No newline at end of file
+
Developer Center no longer accepts new components.
Segment is redeveloping the Developer Center and will launch a new version when complete. To stay up to date, add your contact information [in this Airtable form](https://airtable.com/shrT3b4C7agUEBKVS){:target="_blank"}.
\ No newline at end of file
diff --git a/src/_includes/content/ip-allowlist.md b/src/_includes/content/ip-allowlist.md
index 7b926e7f38..b3167f3424 100644
--- a/src/_includes/content/ip-allowlist.md
+++ b/src/_includes/content/ip-allowlist.md
@@ -1,5 +1,5 @@
When data leaves Segment's servers to go to various destinations (not including warehouses), Segment uses Amazon Web Services (AWS) and utilizes many different machines in order to send requests.
-The IP addresses that are used to send these requests can be found [here](https://ip-ranges.amazonaws.com/ip-ranges.json){:target="_blank"}. If you want to allowlist these specific IP addresses, you need to allowlist all of the IP addresses from your workspace's location range. Below are the ranges:
+The IP addresses that are used to send these requests can be found [on Amazon's website](https://ip-ranges.amazonaws.com/ip-ranges.json){:target="_blank"}. If you want to allowlist these specific IP addresses, you need to allowlist all of the IP addresses from your workspace's location range. Below are the ranges:
* For a US workspace: `AWS us-west-2`
* For an EU workspace: `AWS eu-west-1 `
\ No newline at end of file
diff --git a/src/connections/destinations/catalog/1flow-mobile-plugin/index.md b/src/connections/destinations/catalog/1flow-mobile-plugin/index.md
index 3d5f58188a..d0334aaf71 100644
--- a/src/connections/destinations/catalog/1flow-mobile-plugin/index.md
+++ b/src/connections/destinations/catalog/1flow-mobile-plugin/index.md
@@ -1,7 +1,6 @@
---
title: 1Flow Mobile Plugin Destination
id: 64dd07c1fed86b6866cd93f5
-beta: true
---
[1Flow](https://1flow.ai/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank"} is a leading in-app user survey and messaging platform for Mobile app and SaaS businesses.
diff --git a/src/connections/destinations/catalog/ab-tasty-client-side/index.md b/src/connections/destinations/catalog/ab-tasty-client-side/index.md
index 9e6650338a..37cbff5727 100644
--- a/src/connections/destinations/catalog/ab-tasty-client-side/index.md
+++ b/src/connections/destinations/catalog/ab-tasty-client-side/index.md
@@ -2,7 +2,6 @@
rewrite: true
title: AB Tasty Destination
id: 6214f1347a49cda426260372
-beta: true
---
# AB Tasty Destination
diff --git a/src/connections/destinations/catalog/action-rokt-audiences/index.md b/src/connections/destinations/catalog/action-rokt-audiences/index.md
index 90ca64b9b6..9c67c1126e 100644
--- a/src/connections/destinations/catalog/action-rokt-audiences/index.md
+++ b/src/connections/destinations/catalog/action-rokt-audiences/index.md
@@ -5,7 +5,6 @@ hide-boilerplate: true
hide-dossier: false
private: true
hidden: true
-beta: true
id: 643697130067c2f408ff28ca
redirect_from:
- "/connections/destinations/catalog/actions-rokt-audiences"
@@ -69,4 +68,4 @@ Your Rokt Audiences (Actions) destination is now ready to receive audiences, and
> warning ""
> You can only connect **one** Engage audience to a single instance of the Rokt Audience (Actions) destination. If you have multiple audiences, repeat the above process to create a new Rokt Audience (Actions) destination and connect the audience to a new destination each time.
-{% include components/actions-fields.html %}
\ No newline at end of file
+{% include components/actions-fields.html %}
diff --git a/src/connections/destinations/catalog/actions-1flow/index.md b/src/connections/destinations/catalog/actions-1flow/index.md
index d28826117d..72fe57e8b1 100644
--- a/src/connections/destinations/catalog/actions-1flow/index.md
+++ b/src/connections/destinations/catalog/actions-1flow/index.md
@@ -1,7 +1,6 @@
---
title: 1Flow Web (Actions) Destination
id: 656773f0bd79a3676ab2733d
-beta: true
---
{% include content/plan-grid.md name="actions" %}
@@ -47,4 +46,4 @@ The 1Flow destination automatically ingests any user actions tracked over your T
If you are seeing 404 responses in your browser's network tab, you've likely encountered one of two issues:
- You set the wrong App ID on the 1Flow Actions (Web) destination settings page.
-- You set the wrong Regional Data Hosting value on the 1Flow Actions (Web) destination settings page. 1Flow gates regional endpoints by plan level, so you may not have access to EU data hosting.
\ No newline at end of file
+- You set the wrong Regional Data Hosting value on the 1Flow Actions (Web) destination settings page. 1Flow gates regional endpoints by plan level, so you may not have access to EU data hosting.
diff --git a/src/connections/destinations/catalog/actions-aggregations-io/index.md b/src/connections/destinations/catalog/actions-aggregations-io/index.md
index 320b8797c4..7dc9e66094 100644
--- a/src/connections/destinations/catalog/actions-aggregations-io/index.md
+++ b/src/connections/destinations/catalog/actions-aggregations-io/index.md
@@ -1,7 +1,6 @@
---
title: Aggregations.io (Actions) Destination
id: 659eb601f8f615dac18db564
-beta: true
---
{% include content/plan-grid.md name="actions" %}
@@ -18,4 +17,4 @@ This destination is maintained by Aggregations.io. For any issues with the desti
4. Select an existing Source to connect to Aggregations.io (Actions).
5. In the destination settings, enter your Aggregations.io API Key and Ingest ID. Your ingestion on the Aggregations.io dashboard should be set up using `Array of JSON Objects` and the API Key requires `Write` permission. For more information, see the [Aggregation.io docs](https://aggregations.io/docs/ingesting-data/create-an-ingest){:target="_blank"}.
-{% include components/actions-fields.html %}
\ No newline at end of file
+{% include components/actions-fields.html %}
diff --git a/src/connections/destinations/catalog/actions-algolia-insights/images/algolia_app_id_dropdown.png b/src/connections/destinations/catalog/actions-algolia-insights/images/algolia_app_id_dropdown.png
deleted file mode 100644
index d20fa8413e..0000000000
Binary files a/src/connections/destinations/catalog/actions-algolia-insights/images/algolia_app_id_dropdown.png and /dev/null differ
diff --git a/src/connections/destinations/catalog/actions-algolia-insights/images/destination_settings.png b/src/connections/destinations/catalog/actions-algolia-insights/images/destination_settings.png
deleted file mode 100644
index 7db16424cb..0000000000
Binary files a/src/connections/destinations/catalog/actions-algolia-insights/images/destination_settings.png and /dev/null differ
diff --git a/src/connections/destinations/catalog/actions-algolia-insights/images/mapping_tab.png b/src/connections/destinations/catalog/actions-algolia-insights/images/mapping_tab.png
deleted file mode 100644
index 263f4732ed..0000000000
Binary files a/src/connections/destinations/catalog/actions-algolia-insights/images/mapping_tab.png and /dev/null differ
diff --git a/src/connections/destinations/catalog/actions-algolia-insights/images/mapping_tab_edit.png b/src/connections/destinations/catalog/actions-algolia-insights/images/mapping_tab_edit.png
deleted file mode 100644
index d5cf84fa43..0000000000
Binary files a/src/connections/destinations/catalog/actions-algolia-insights/images/mapping_tab_edit.png and /dev/null differ
diff --git a/src/connections/destinations/catalog/actions-algolia-insights/images/mappings_tab.png b/src/connections/destinations/catalog/actions-algolia-insights/images/mappings_tab.png
new file mode 100644
index 0000000000..ac63c79d5a
Binary files /dev/null and b/src/connections/destinations/catalog/actions-algolia-insights/images/mappings_tab.png differ
diff --git a/src/connections/destinations/catalog/actions-algolia-insights/images/rename_events.png b/src/connections/destinations/catalog/actions-algolia-insights/images/rename_events.png
deleted file mode 100644
index 00dfb97d12..0000000000
Binary files a/src/connections/destinations/catalog/actions-algolia-insights/images/rename_events.png and /dev/null differ
diff --git a/src/connections/destinations/catalog/actions-algolia-insights/index.md b/src/connections/destinations/catalog/actions-algolia-insights/index.md
index 3c4290a156..38a031a44a 100644
--- a/src/connections/destinations/catalog/actions-algolia-insights/index.md
+++ b/src/connections/destinations/catalog/actions-algolia-insights/index.md
@@ -17,15 +17,15 @@ This destination is maintained by [Algolia](https://www.algolia.com/){:target="_
## Getting Started
-1. From the Segment web app, click **Catalog**.
-2. Search for "Algolia" in the Catalog, select it, and choose which of your sources to connect the destination to.
-3. Enter the "App ID" & "API Key" into your Segment Settings UI which you can find on the Algolia Dashboard, under API Keys menu.
+1. From the Destinations catalog page in the Segment App, click **Add Destination**.
+2. Search for **Algolia** in the Destinations Catalog and select the **Algolia Insights (Actions)** destination.
+3. Choose which Source should send data to the Algolia destination.
+4. Sign in to the [Algolia dashboard](https://dashboard.algolia.com/users/sign_in) and retrieve your **App ID** and **API Key** for the application you'd like to connect. See **[Getting your Algolia credentials](#getting-your-algolia-credentials)** below for details on where to get these values.
+5. Enter the **App ID** and **API Key** in the Algolia destination settings in Segment.
-To find your App ID, there are two options. You can find the App Id in the Application dropdown in the Dashboard.
+### Getting your Algolia credentials
-
-
-The other location is where you will also find your API Keys. You can find your API Keys in your settings under API Keys, you will need a Search API Key to set up the Destination in Segment.
+Your app ID and API key can be found in the **API Keys** section of your account settings in the Algolia dashboard. You will need a **search** API key to set up the destination.

@@ -33,10 +33,12 @@ The other location is where you will also find your API Keys. You can find your

-> info ""
-> The Algolia Insights Destination is not a plug-and-play integration. It requires you to modify your frontend code to end additional Algolia-related data like index name or queryID.
+### Algolia-related data
+
+The Algolia Insights Destination is not a plug-and-play integration. It requires you to modify your frontend code to add additional Algolia-related data like an index name and a query ID.
+
+To access your query ID, make sure [`clickAnalytics`](https://www.algolia.com/doc/api-reference/api-parameters/clickAnalytics/) is enabled in your searches. If you're using our JavaScript search API client, this will look like:
-To access your queryID, make sure clickAnalytics are enabled in your search event. If you're using Insights.js this will look like
```js
index.search('query', {
userToken: 'user-1',
@@ -44,71 +46,98 @@ index.search('query', {
})
```
-Once this is enabled you will be able to send properties like queryId in your segment events. You can read more about how to send Algolia-related data to Segment from [the documentation at Algolia](https://www.algolia.com/doc/guides/sending-events/implementing/connectors/segment/){:target="_blank”}.
+Once this is enabled, you will be able to access `queryID` in your search response, which you can then use in your Segment events.
-## Mapping Events
+You can read more about how to send Algolia-related data to Segment in the [Algolia documentation](https://www.algolia.com/doc/guides/sending-events/connectors/segment/#augment-your-segment-events-with-algolia-related-data){:target="_blank”}.
-By default, Algolia has set up mappings for Product Clicked, Product Viewed and Order Completed events. If your event structure doesn't match [Segments V2 Ecommerce Spec](/docs/connections/spec/ecommerce/v2/) you can update this by using the Mapping Tab.
+## Mapping Events
-
+By default, Algolia has set up mappings for `Product List Filtered`, `Product Clicked`, `Product Viewed`, `Product Added` and `Order Completed` events. If your event structure doesn't match Segment's [Ecommerce Spec](/docs/connections/spec/ecommerce/v2/), you can update this in the destination mappings section of the Segment app.
-
+
## Track
-If you're not familiar with the Segment Specs, take a look to understand what the [Track method](/docs/connections/spec/track/) does.
+If you're not familiar with the Segment spec, take a look to understand what the [Track](/docs/connections/spec/track/) method does.
-Algolia supports the following events from Segment's [Ecommerce Spec](/docs/connections/spec/ecommerce/v2/).
+Algolia supports the following Segment events out of the box:
-
Supported Events
-
Description
+
Supported Events
+
Description
+
+
+
Product List Filtered
+
Send this event when a visitor filters a product list or category.
+
+
+
Product Clicked
+
Fire this event when a visitor clicks a product.
-
Product Viewed
-
Fire this event when a visitor views a product.
+
Product Viewed
+
Fire this event when a visitor views a product.
-
Product Clicked
-
Fire this event when a visitor clicks a product.
+
Product Added
+
Fire this event when a visitor adds a product to their shopping cart.
-
Order Completed
-
Fire this event whenever an order/transaction was successfully completed by the customer.
+
Order Completed
+
Fire this event whenever an order/transaction was successfully completed by the customer.
-For a full list of required properties for each event type, see the [Spec: V2 Ecommerce Events](/docs/connections/spec/ecommerce/v2/)
+For a full list of required properties for each event type, see [Spec: V2 Ecommerce Events](/docs/connections/spec/ecommerce/v2/)
```js
-analytics.track('Product Viewed', {
- objectID: "hit objectID",
- index: "my-index-name",
- queryID: "Algolia queryID", // required only for Click Analytics,
- // ... other required properties from the spec
+analytics.track('Product List Filtered', {
+ search_index: "my-index-name",
+ filters: [
+ {
+ attribute: "color",
+ value: "yellow",
+ }
+ ],
+ query_id: "Algolia queryID", // required only for Click Analytics,
+ // ... other required properties from the spec
})
analytics.track('Product Clicked', {
- objectID: "hit objectID",
- position: hitPositionOnIndex, // number
- index: "my-index-name",
- queryID: "Algolia queryID", // required only for Click Analytics,
- // ... other required properties from the spec
+ search_index: "my-index-name",
+ product_id: "hit objectID",
+ position: hitPositionOnIndex, // number
+ query_id: "Algolia queryID", // required only for Click Analytics,
+ // ... other required properties from the spec
+})
+
+analytics.track('Product Viewed', {
+ search_index: "my-index-name",
+ product_id: "hit objectID",
+ query_id: "Algolia queryID", // required only for Click Analytics,
+ // ... other required properties from the spec
+})
+
+analytics.track('Product Added', {
+ search_index: "my-index-name",
+ product_id: "hit objectID",
+ query_id: "Algolia queryID", // required only for Click Analytics,
+ // ... other required properties from the spec
})
analytics.track('Order Completed', {
- index: "my-index-name",
- queryID: "Algolia queryID", // required only for Click Analytics,
- products: [
- {
- objectID: "hit objectID",
- // ... other required properties from the spec
- },
+ search_index: "my-index-name",
+ products: [
+ {
+ product_id: "hit objectID",
+ queryID: "Algolia queryID",
// ...
- ]
+ },
+ // ... other required properties from the spec
+ ]
})
```
> info ""
-> If you send anonymous activity to Algolia, Algolia does not connect it to activity attributed to that same user once they are identified.
\ No newline at end of file
+> If you send anonymous activity to Algolia, Algolia does not connect it to activity attributed to that same user once they are identified.
diff --git a/src/connections/destinations/catalog/actions-amazon-amc/index.md b/src/connections/destinations/catalog/actions-amazon-amc/index.md
index 9994573603..1598f78b57 100644
--- a/src/connections/destinations/catalog/actions-amazon-amc/index.md
+++ b/src/connections/destinations/catalog/actions-amazon-amc/index.md
@@ -1,7 +1,6 @@
---
title: Amazon Ads DSP and AMC Destination
id: 66543798b2fb3cb3e9ff992c
-beta: true
---
{% include content/plan-grid.md name="actions" %}
diff --git a/src/connections/destinations/catalog/actions-ambee/index.md b/src/connections/destinations/catalog/actions-ambee/index.md
index 2a16d7d4bc..3c813508e9 100644
--- a/src/connections/destinations/catalog/actions-ambee/index.md
+++ b/src/connections/destinations/catalog/actions-ambee/index.md
@@ -1,7 +1,6 @@
---
title: "Ambee (Actions) Destination"
hidden: true
-beta: true
id: 647f2f7ce3b561ab931c2b77
---
@@ -47,7 +46,7 @@ Then, in the Source, navigate to **Settings** > **API Keys**.
### API Key
To start working with Ambee as your destination, you'll need
-Ambee's API Key. Sign up for Ambee [here](https://auth.ambeedata.com/users/register?redirectUrl=https://api-dashboard.getambee.com){:target="_blank"}.
+Ambee's API Key. Sign up for Ambee [on the Ambee site](https://auth.ambeedata.com/users/register?redirectUrl=https://api-dashboard.getambee.com){:target="_blank"}.
Once you are signed in, you will get your limited-period API key on the
dashboard's homepage. If your use case requires data in bulk, you'll
diff --git a/src/connections/destinations/catalog/actions-angler-ai/index.md b/src/connections/destinations/catalog/actions-angler-ai/index.md
index 901f8c18f1..5fb98b4935 100644
--- a/src/connections/destinations/catalog/actions-angler-ai/index.md
+++ b/src/connections/destinations/catalog/actions-angler-ai/index.md
@@ -1,6 +1,5 @@
---
title: Angler AI (Actions) Destination
-beta: true
id: 668d1cb2a1dcc5ad33228d92
---
diff --git a/src/connections/destinations/catalog/actions-app-fit/index.md b/src/connections/destinations/catalog/actions-app-fit/index.md
index 8ee9b0d2e5..b3680c2f8a 100644
--- a/src/connections/destinations/catalog/actions-app-fit/index.md
+++ b/src/connections/destinations/catalog/actions-app-fit/index.md
@@ -1,7 +1,6 @@
---
title: AppFit (Actions) Destination
id: 64b67be0d0dd66094c162ca7
-beta: true
---
{% include content/plan-grid.md name="actions" %}
diff --git a/src/connections/destinations/catalog/actions-attio/index.md b/src/connections/destinations/catalog/actions-attio/index.md
index 7c2e0f94d6..5f492dcc17 100644
--- a/src/connections/destinations/catalog/actions-attio/index.md
+++ b/src/connections/destinations/catalog/actions-attio/index.md
@@ -2,7 +2,6 @@
title: Attio (Actions) Destination
hide-boilerplate: true
id: 64c031541451bb784943f809
-beta: true
---
{% include content/plan-grid.md name="actions" %}
diff --git a/src/connections/destinations/catalog/actions-braze-web/index.md b/src/connections/destinations/catalog/actions-braze-web/index.md
index e4422499d0..9f7a50f145 100644
--- a/src/connections/destinations/catalog/actions-braze-web/index.md
+++ b/src/connections/destinations/catalog/actions-braze-web/index.md
@@ -99,13 +99,13 @@ analytics.ready(function() {
});
```
-1. Set your GCM/FCM server API key and SenderID on the Braze dashboard. You can find more details for this [here](https://www.braze.com/docs/developer_guide/platform_integration_guides/web/initial_sdk_setup#step-4-set-your-gcmfcm-server-api-key-and-senderid-on-the-Braze-dashboard){:target="_blank"}.
+1. Set your GCM/FCM server API key and SenderID on the Braze dashboard. You can find more details for this in Braze's [Initial SDK setup for web](https://www.braze.com/docs/developer_guide/platform_integration_guides/web/initial_sdk_setup#step-4-set-your-gcmfcm-server-api-key-and-senderid-on-the-Braze-dashboard){:target="_blank"} documentation.
2. To support push notifications on Safari, add your Website Push ID into your Segment Settings UI and Segment sends it when the Braze Web SDK initializes. To get your Website Push ID, follow the first two bullet points in [these instructions](https://www.braze.com/docs/developer_guide/platform_integration_guides/web/initial_sdk_setup#step-5-configure-safari-push){:target="_blank"}.
### Soft Push Prompts
-1. Follow [step one](https://www.braze.com/docs/developer_guide/platform_integration_guides/web/initial_sdk_setup#soft-push-prompts){:target="_blank"} to create a "Prime for Push" in-app messaging Campaign on the Braze dashboard.
+1. Follow [step one](https://www.braze.com/docs/developer_guide/platform_integration_guides/web/push_notifications/soft_push_prompt/#step-1-create-a-push-primer-campaign){:target="_blank"} to create a "Prime for Push" in-app messaging Campaign on the Braze dashboard.
2. Add the following snippet to your site:
@@ -146,7 +146,7 @@ analytics.ready(function() {
});
```
-For more details on this snippet, see Braze's documentation [here](https://www.braze.com/docs/developer_guide/platform_integration_guides/web/initial_sdk_setup#soft-push-prompts){:target="_blank"}.
+For more details on this snippet, see Braze's [Soft push prompt](https://www.braze.com/docs/developer_guide/platform_integration_guides/web/push_notifications/soft_push_prompt/#step-3-update-integration){:target="_blank"} documentation.
> info ""
> Place this snippet outside of your [Segment Snippet](/docs/connections/sources/catalog/libraries/website/javascript/quickstart/#step-2-copy-the-segment-snippet) within your `script` tag.
@@ -160,7 +160,6 @@ For more details on this snippet, see Braze's documentation [here](https://www.b
```
-
## Important differences from the classic Braze destination
- Braze Web Mode (Actions) supports the Braze [Web](https://github.com/segment-integrations/analytics.js-integration-appboy){:target="_blank"} integration. [Braze Cloud Mode (Actions)](/docs/connections/destinations/catalog/actions-braze-cloud) supports server and mobile sources, but to use mobile sources in device-mode, use the Braze Classic destination.
diff --git a/src/connections/destinations/catalog/actions-chartmogul/index.md b/src/connections/destinations/catalog/actions-chartmogul/index.md
index 4359123138..0c9c9a760f 100644
--- a/src/connections/destinations/catalog/actions-chartmogul/index.md
+++ b/src/connections/destinations/catalog/actions-chartmogul/index.md
@@ -1,7 +1,6 @@
---
title: ChartMogul (Actions) Destination
id: 65f9888628c310646331738a
-beta: true
---
@@ -33,4 +32,4 @@ ChartMogul (Actions) accepts two types of event calls:
- [Track](https://segment.com/docs/connections/spec/track/){:target="_blank"} — used for contact details and custom attributes
- [Group](https://segment.com/docs/connections/spec/group/){:target="_blank"} — used for customer details and custom attributes
-ChartMogul uses attributes from these calls to create new or update existing [custom attributes](https://help.chartmogul.com/hc/en-us/articles/206120219){:target="_blank"} for contacts or customers, or to update customers' select [standard attributes](https://help.chartmogul.com/hc/en-us/articles/5321255006364#standard-attributes){:target="_blank"}.
\ No newline at end of file
+ChartMogul uses attributes from these calls to create new or update existing [custom attributes](https://help.chartmogul.com/hc/en-us/articles/206120219){:target="_blank"} for contacts or customers, or to update customers' select [standard attributes](https://help.chartmogul.com/hc/en-us/articles/5321255006364#standard-attributes){:target="_blank"}.
diff --git a/src/connections/destinations/catalog/actions-display-video-360/index.md b/src/connections/destinations/catalog/actions-display-video-360/index.md
index c3bf2f6658..a464e0760a 100644
--- a/src/connections/destinations/catalog/actions-display-video-360/index.md
+++ b/src/connections/destinations/catalog/actions-display-video-360/index.md
@@ -108,7 +108,7 @@ To configure DoubleClick Floodlight:
7. Click **Save** and make sure you enable the mapping.
> info ""
-> The destination does not have configurable settings until you create an audience, described [here](#create-an-audience-and-finish-dv360-configuration).
+> The destination does not have configurable settings until you create an audience, described in the [Create an audience and finish DV360 configuration](#create-an-audience-and-finish-dv360-configuration) documentation.
### Create an audience and finish DV360 configuration
diff --git a/src/connections/destinations/catalog/actions-emarsys/index.md b/src/connections/destinations/catalog/actions-emarsys/index.md
index 043f4a351e..15c37862b8 100644
--- a/src/connections/destinations/catalog/actions-emarsys/index.md
+++ b/src/connections/destinations/catalog/actions-emarsys/index.md
@@ -2,7 +2,6 @@
title: Emarsys (Actions) Destination
hide-boilerplate: true
hide-dossier: false
-beta: true
id: 63f65c1c42e3bded41f0499c
versions:
- name: Emarsys (Classic)
diff --git a/src/connections/destinations/catalog/actions-equals/index.md b/src/connections/destinations/catalog/actions-equals/index.md
index 4416280fde..e1831dcd05 100644
--- a/src/connections/destinations/catalog/actions-equals/index.md
+++ b/src/connections/destinations/catalog/actions-equals/index.md
@@ -1,6 +1,5 @@
---
title: Equals Destination
-beta: true
id: 659eb6903c4d201ebd9e2f5c
---
@@ -30,4 +29,4 @@ Note that Segment is an Enterprise Connection; you will be prompted to schedule
11. Click the Save Changes button.
12. Optionally, to configure the data to be sent to Segment, navigate to the Mappings tab and edit the 'Send' Mapping.
-{% include components/actions-fields.html %}
\ No newline at end of file
+{% include components/actions-fields.html %}
diff --git a/src/connections/destinations/catalog/actions-facebook-conversions-api/index.md b/src/connections/destinations/catalog/actions-facebook-conversions-api/index.md
index 73f6c999ee..313e6514a9 100644
--- a/src/connections/destinations/catalog/actions-facebook-conversions-api/index.md
+++ b/src/connections/destinations/catalog/actions-facebook-conversions-api/index.md
@@ -118,7 +118,7 @@ Use this approach if you don't want to track users from the browser with Faceboo
### Send app events
-App events may be sent through the Conversions API by first setting up a dataset in your Facebook Events Manager. Learn more about passing app events through the Conversions API [here](https://developers.facebook.com/docs/marketing-api/conversions-api/app-events){:target="_blank"}. Learn how to create a dataset [here](https://www.facebook.com/business/help/750785952855662?id=490360542427371){:target="_blank"}.
+App events may be sent through the Conversions API by first setting up a dataset in your Facebook Events Manager. Learn more about passing app events through the Conversions API in Facebook's [Conversions API for App Events](https://developers.facebook.com/docs/marketing-api/conversions-api/app-events){:target="_blank"} documentation. Learn how to create a dataset in Facebook's [About datasets in Meta Events Manager](https://www.facebook.com/business/help/750785952855662?id=490360542427371){:target="_blank"} documentation.
#### Configuring app events
Sending app events requires the `action_source` parameter to be set to `app`.
@@ -209,7 +209,7 @@ Segment automatically maps User Data fields to their corresponding parameters [a
### Server Event Parameter Requirements
-Facebook requires the `action_source` server event parameter for all events sent to the Facebook Conversions API. This parameter specifies where the conversions occur. If `action_source` is set to **website**, then the `client_user_agent` and the `event_source_url` parameters are also required. Events sent to the Conversions API that don't meet the requirements may not be available for optimization, targeting, or measurement. Facebook requires additional fields as well such as, Event Name, Event Type, and User Data. See the full list of required fields [here](https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/server-event/).
+Facebook requires the `action_source` server event parameter for all events sent to the Facebook Conversions API. This parameter specifies where the conversions occur. If `action_source` is set to **website**, then the `client_user_agent` and the `event_source_url` parameters are also required. Events sent to the Conversions API that don't meet the requirements may not be available for optimization, targeting, or measurement. Facebook requires additional fields as well such as, Event Name, Event Type, and User Data. See the full list of required fields in Facebook's [Server Event Parameters](https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/server-event/){:target="_blank”} documentation.
### Verify Events in Facebook
diff --git a/src/connections/destinations/catalog/actions-gameball/index.md b/src/connections/destinations/catalog/actions-gameball/index.md
index 2d0bdbcfb7..055424652e 100644
--- a/src/connections/destinations/catalog/actions-gameball/index.md
+++ b/src/connections/destinations/catalog/actions-gameball/index.md
@@ -1,7 +1,6 @@
---
title: Gameball (Actions) Destination
id: 64d3487dcc68fe039fb6237f
-beta: true
---
{% include content/plan-grid.md name="actions" %}
diff --git a/src/connections/destinations/catalog/actions-google-campaign-manager/index.md b/src/connections/destinations/catalog/actions-google-campaign-manager/index.md
index 9e6abaecdf..3236306ef7 100644
--- a/src/connections/destinations/catalog/actions-google-campaign-manager/index.md
+++ b/src/connections/destinations/catalog/actions-google-campaign-manager/index.md
@@ -6,7 +6,6 @@ hide-dossier: false
id: 64f2434e5066280a0e7f1ab3
hidden: true
private: true
-beta: true
versions:
- name: "Google Tag for Campaign Manager"
link: '/docs/connections/destinations/catalog/actions-google-analytics-4/'
diff --git a/src/connections/destinations/catalog/actions-google-enhanced-conversions/index.md b/src/connections/destinations/catalog/actions-google-enhanced-conversions/index.md
index 69fe73e336..14ada365cd 100644
--- a/src/connections/destinations/catalog/actions-google-enhanced-conversions/index.md
+++ b/src/connections/destinations/catalog/actions-google-enhanced-conversions/index.md
@@ -19,9 +19,6 @@ hide_action:
The Google Ads Conversions destination enables you to upload offline conversions and conversion adjustments to Google Ads in a privacy safe way. With this server-side destination, you can upload conversions to the [Google Ads API](https://developers.google.com/google-ads/api/docs/conversions/overview){:target="_blank"} and tie them to a user's online click or phone call. In addition, you can improve the accuracy of your conversion measurement by sending conversion enhancements, restatements, and retractions.
-> warning "Upload Enhanced Conversion (Legacy) Actions will be deprecated after June 30th, 2024"
-> Segment will begin migrating all enabled Upload Enhanced Conversion (Legacy) mappings to the updated Upload Conversion Adjustment mappings on June 7th, 2024. **After Segment migrates your mappings, you must take action to prevent data loss**. For more information, see the [Automatic migration from Upload Enhanced Conversion (Legacy) Action](#automatic-migration-from-upload-enhanced-conversion-legacy-action) documentation.
-
> info "Consent mode"
> Google enforced consent on March 6, 2024 for European Economic Area (EEA) users. Learn more about [consent mode](/docs/connections/destinations/catalog/actions-google-enhanced-conversions/#consent-mode) and how to set it up.
@@ -36,63 +33,6 @@ The Google Ads Conversions destination enables you to upload offline conversions
{% include components/actions-fields.html settings="true"%}
-## Migrate from your legacy Upload Enhanced Conversion Action
-
-To migrate from the legacy Upload Enhanced Conversion Action to the updated Upload Conversion Adjustment Action:
-
-1. Navigate to the Google Ads Conversions destination in your workspace and select the **Settings** tab.
-2. On the Settings tab, enter your Conversion ID and Customer ID into the named fields.
-2. Update the following fields for the Upload Conversion Adjustment Action mapping:
- - Conversion Action ID
- - Adjustment Type
-3. Replicate as many fields from your original mapping as possible, using the following table for reference.
-
-Review the [Upload Conversion Adjustment Action](/docs/connections/destinations/catalog/actions-google-enhanced-conversions/#upload-conversion-adjustment) section for more details about each field.
-
-| Upload Enhanced Conversion (Legacy)| Upload Conversion Adjustment | Default Mapping |
-|------------------------|----------------------------|--------------------------------------|
-| conversion_label | N/A | `$.properties.conversion_label` |
-| email | email_address | `$.properties.email` or `$.traits.email` or `$.context.traits.email` |
-| transaction_id | order_id | `$.properties.orderId` |
-| user_agent | user_agent | `$.context.userAgent` |
-| conversion_time | conversion_timestamp | `$.timestamp` |
-| value | N/A |` $.properties.total` |
-| currency_code | N/A | `$.properties.currency` |
-| is_app_incrementality | N/A |` false` |
-| pcc_game | N/A | `false` |
-| phone_number | phone_number | `$.properties.phone` or `$.traits.phone` |
-| first_name | first_name | `$.properties.firstName` or `$.traits.firstName` |
-| last_name | last_name | `$.properties.lastName` or `$.traits.lastName` |
-| street_address | street_address | `$.properties.address.street` or `$.traits.address.street` |
-| city | city | `$.properties.address.city` or `$.traits.address.city` |
-| region | state | `$.properties.address.state` or `$.traits.address.state` |
-| post_code | postal_code | `$.properties.address.postalCode` or `$.traits.address.postalCode` |
-| country | country | `$.properties.address.country` or `$.traits.address.country` |
-| N/A | gclid | Default Not Available |
-| N/A | adjustment_timestamp | Default Not Available |
-| N/A | restatement_value | Default Not Available |
-| N/A | restatement_currency_code | Default Not Available |
-
-
-### Automatic migration from Upload Enhanced Conversion (Legacy) Action
-The Upload Enhanced Conversion action relies on the Google Enhanced Conversion Legacy API, which will be deprecated on June 30th, 2024.
-
-On June 7, 2024, Segment will begin migrating all enabled legacy Upload Enhanced Conversion mappings to the new Upload Conversion Adjustment mapping, preserving as many mapping fields as possible. Migrated mappings will have the same names as your legacy mappings, with `[Migrated]` appended. For example, if your mapping was named "Enhanced Conversions", Segment would name your migrated mapping "Enhanced Conversions [Migrated]".
-
-
-
-After this migration occurs, you must take the following steps:
-1. Open the your Google Ads Conversions destination and select the **Settings** tab.
-2. Enter your Conversion ID and Customer ID into their respective fields. Find information about what these values are in the [destination settings](#destination-settings).
-3. Select the **Mappings** tab.
-4. Update the Conversion Action and Adjustment Type fields in the Upload Conversion Adjustment mapping to match the fields outlined in the above table. 
-5. Enable the migrated mapping(s).
-6. Disable the legacy Upload Enhanced Conversion mappings.
-
-To migrate your mapping yourself, use the steps in the [Migrate from your legacy Upload Enhanced Conversion Action](#migrate-from-your-legacy-upload-enhanced-conversion-action) documentation.
-
-Segment will deprecate all legacy Upload Enhanced Conversion legacy actions after June 30th, 2024.
-
## Consent mode
[Consent mode](https://support.google.com/analytics/answer/9976101?hl=en){:target="_blank"} is a feature provided by Google in the context of its products, particularly the Gtag library and Google Analytics. As of March 6, 2024, Google announced that consent mode must function for European Economic Area (EEA) users, otherwise data from EEA users won't process.
diff --git a/src/connections/destinations/catalog/actions-hubspot-cloud/index.md b/src/connections/destinations/catalog/actions-hubspot-cloud/index.md
index 93c253f58b..4973dbbf78 100644
--- a/src/connections/destinations/catalog/actions-hubspot-cloud/index.md
+++ b/src/connections/destinations/catalog/actions-hubspot-cloud/index.md
@@ -93,7 +93,7 @@ Event payloads should contain an email with either a valid format, empty string,
Follow the instructions in the docs to [disable](/docs/connections/destinations/actions/#disable-a-destination-action) or [delete](/docs/connections/destinations/actions/#delete-a-destination-action) a destination action from Segment.
### How can I uninstall an app from my HubSpot account?
-Follow the steps mentioned [here](https://knowledge.hubspot.com/integrations/connect-apps-to-hubspot#uninstall-an-app){:target="_blank"} to uninstall or disconnect an app from your HubSpot account.
+Follow the steps outlined in HubSpot's [Uninstall an app](https://knowledge.hubspot.com/integrations/connect-apps-to-hubspot#uninstall-an-app){:target="_blank"} docs to uninstall or disconnect an app from your HubSpot account.
### How does disconnecting and uninstalling affect a user's data and HubSpot account?
Segment immediately stops sending data to HubSpot after you disconnect and uninstall a HubSpot account.
diff --git a/src/connections/destinations/catalog/actions-hyperengage/index.md b/src/connections/destinations/catalog/actions-hyperengage/index.md
index 6f48d9d027..f2069517ce 100644
--- a/src/connections/destinations/catalog/actions-hyperengage/index.md
+++ b/src/connections/destinations/catalog/actions-hyperengage/index.md
@@ -2,7 +2,6 @@
title: Hyperengage (Actions) Destination
hide-boilerplate: true
hide-dossier: true
-beta: true
private: true
id: 651c1db19de92d8e595ff55d
---
@@ -31,4 +30,4 @@ Hyperengage (Actions) offers several advantages:
7. Open the Segment app, navigate to your Hyperengage (Actions) destination, and paste the API Key and Workspace Identifier into the destination's settings page.
-{% include components/actions-fields.html %}
\ No newline at end of file
+{% include components/actions-fields.html %}
diff --git a/src/connections/destinations/catalog/actions-iterate/index.md b/src/connections/destinations/catalog/actions-iterate/index.md
index 65b6f409b3..e130a0c3c8 100644
--- a/src/connections/destinations/catalog/actions-iterate/index.md
+++ b/src/connections/destinations/catalog/actions-iterate/index.md
@@ -2,7 +2,6 @@
title: Iterate (Actions) Destination
hide-boilerplate: true
hide-dossier: true
-beta: true
id: 62fec615a42fa3dbfd208ce7
---
diff --git a/src/connections/destinations/catalog/actions-jimo/index.md b/src/connections/destinations/catalog/actions-jimo/index.md
index 0fc4c1e8bb..08ff6ab548 100644
--- a/src/connections/destinations/catalog/actions-jimo/index.md
+++ b/src/connections/destinations/catalog/actions-jimo/index.md
@@ -1,7 +1,6 @@
---
title: Jimo (Actions) Destination
id: 652d4cf5e00c0147e6eaf5e7
-beta: true
---
{% include content/plan-grid.md name="actions" %}
diff --git a/src/connections/destinations/catalog/actions-kafka/index.md b/src/connections/destinations/catalog/actions-kafka/index.md
index c114335dca..40b380f2f5 100644
--- a/src/connections/destinations/catalog/actions-kafka/index.md
+++ b/src/connections/destinations/catalog/actions-kafka/index.md
@@ -1,6 +1,5 @@
---
title: Kafka Destination
-beta: true
id: 65dde5755698cb0dab09b489
---
@@ -98,4 +97,4 @@ The **Send** Action provides multiple ways to specify which Partition an event s
### What is the "SSL - Reject Unauthorized Certificate Authority" field for?
-This field specifies if Segment should reject server connections when a certificate is not signed by a trusted Certificate Authority (CA). This can be useful for testing purposes or when using a self-signed certificate.
\ No newline at end of file
+This field specifies if Segment should reject server connections when a certificate is not signed by a trusted Certificate Authority (CA). This can be useful for testing purposes or when using a self-signed certificate.
diff --git a/src/connections/destinations/catalog/actions-kameleoon/index.md b/src/connections/destinations/catalog/actions-kameleoon/index.md
index 3b07f639d2..a9aa276a67 100644
--- a/src/connections/destinations/catalog/actions-kameleoon/index.md
+++ b/src/connections/destinations/catalog/actions-kameleoon/index.md
@@ -1,6 +1,5 @@
---
title: Kameleoon (Actions) Destination
-beta: true
id: 652ea51a327a62b351aa12c0
---
diff --git a/src/connections/destinations/catalog/actions-klaviyo/index.md b/src/connections/destinations/catalog/actions-klaviyo/index.md
index 41864c005a..ddfa779bf3 100644
--- a/src/connections/destinations/catalog/actions-klaviyo/index.md
+++ b/src/connections/destinations/catalog/actions-klaviyo/index.md
@@ -1,7 +1,6 @@
---
title: Klaviyo (Actions) Destination
id: 650bdf1a62fb34ef0a8058e1
-beta: true
---
{% include content/plan-grid.md name="actions" %}
@@ -97,4 +96,4 @@ No. Engage audiences are designed to initiate the creation of new lists in Klavi
When adding a user to a list, our action make use of the [Bulk Profile Import](https://developers.klaviyo.com/en/reference/spawn_bulk_profile_import_job){target="_blank"} endpoint (when batching is enabled), and the [Add Profile To List](https://developers.klaviyo.com/en/reference/create_list_relationships){target="_blank"} endpoint for non-batched requests. Both of which will not update a users suppression status if they were previously suppressed.
-To ensure a suppressed profile gets unsuppressed, you can use the "Subscribe Profile" action. When a profile is subscribed in Klaviyo, it automatically unsuppresses any previously suppressed user. You can combine this action with other actions to achieve your goal. If this solution does not fully address your use case, please contact us at friends@segment.com so we can consider your specific requirements.
\ No newline at end of file
+To ensure a suppressed profile gets unsuppressed, you can use the "Subscribe Profile" action. When a profile is subscribed in Klaviyo, it automatically unsuppresses any previously suppressed user. You can combine this action with other actions to achieve your goal. If this solution does not fully address your use case, please contact us at friends@segment.com so we can consider your specific requirements.
diff --git a/src/connections/destinations/catalog/actions-liveramp-audiences/index.md b/src/connections/destinations/catalog/actions-liveramp-audiences/index.md
index 2bc37e4b8b..e24c330428 100644
--- a/src/connections/destinations/catalog/actions-liveramp-audiences/index.md
+++ b/src/connections/destinations/catalog/actions-liveramp-audiences/index.md
@@ -3,7 +3,6 @@ title: LiveRamp Audiences Destination
hide-boilerplate: true
hide-dossier: false
id: 644ad6c6c4a87a3290450602
-beta: true
---
[LiveRamp](https://liveramp.com/){:target="_blank"} gives companies and their partners the power to connect, control, and activate data to transform customer experiences and generate more valuable business outcomes. Segment's integration with LiveRamp lets you push user audiences created in [Twilio Engage](https://www.twilio.com/en-us/engage){:target="_blank"} into your LiveRamp account to execute various marketing use cases.
diff --git a/src/connections/destinations/catalog/actions-magellan-ai/index.md b/src/connections/destinations/catalog/actions-magellan-ai/index.md
index f5fcfe7219..926a2eea73 100644
--- a/src/connections/destinations/catalog/actions-magellan-ai/index.md
+++ b/src/connections/destinations/catalog/actions-magellan-ai/index.md
@@ -1,7 +1,6 @@
---
title: Magellan AI (Actions) Destination
id: 661eca176680eee35d82c955
-beta: true
hidden: true
---
diff --git a/src/connections/destinations/catalog/actions-moloco-rmp/index.md b/src/connections/destinations/catalog/actions-moloco-rmp/index.md
index 19fda5d9a0..29c3970350 100644
--- a/src/connections/destinations/catalog/actions-moloco-rmp/index.md
+++ b/src/connections/destinations/catalog/actions-moloco-rmp/index.md
@@ -1,7 +1,6 @@
---
title: Moloco Commerce Media Destination
id: 65f05e455b125cddd886b793
-beta: true
---
[Moloco Commerce Media](https://www.moloco.com/products/moloco-retail-media-platform){:target="_blank”} (MCM) is a technology solution that empowers marketplaces and online retailers to build and scale a retail media business (for example, sponsored ads). Moloco’s solution helps platforms leverage and activate their first-party data to deliver highly relevant and performant ads, automate ad decision-making, and scale their ads business.
diff --git a/src/connections/destinations/catalog/actions-movable-ink/index.md b/src/connections/destinations/catalog/actions-movable-ink/index.md
index 572052cdc7..0f15e7d7d2 100644
--- a/src/connections/destinations/catalog/actions-movable-ink/index.md
+++ b/src/connections/destinations/catalog/actions-movable-ink/index.md
@@ -1,7 +1,6 @@
---
title: Movable Ink (Actions) Destination
id: 6537b55db9e94b2e110c9cf9
-beta: true
---
[Movable Ink](https://movableink.com/){:target="_blank"} lets email marketers deliver jaw-dropping customer experiences. Movable Ink's cloud-based software activates any data to generate intelligent content at the moment of open.
@@ -53,4 +52,4 @@ Your client experience manager will then provide you with a Movable Ink endpoint
> info ""
> For any unexpected errors, contact your Movable Ink client experience team with the full sample payload.
-{% include components/actions-fields.html %}
\ No newline at end of file
+{% include components/actions-fields.html %}
diff --git a/src/connections/destinations/catalog/actions-optimizely-advanced-audience-targeting/index.md b/src/connections/destinations/catalog/actions-optimizely-advanced-audience-targeting/index.md
index d6514f037d..9f3635f5a3 100644
--- a/src/connections/destinations/catalog/actions-optimizely-advanced-audience-targeting/index.md
+++ b/src/connections/destinations/catalog/actions-optimizely-advanced-audience-targeting/index.md
@@ -1,7 +1,6 @@
---
title: Optimizely Advanced Audience Targeting Destination
id: 64edeb2bee24614fe52ede34
-beta: true
---
{% include content/plan-grid.md name="actions" %}
diff --git a/src/connections/destinations/catalog/actions-optimizely-data-platform/index.md b/src/connections/destinations/catalog/actions-optimizely-data-platform/index.md
index 36e52dc68e..ac819b0341 100644
--- a/src/connections/destinations/catalog/actions-optimizely-data-platform/index.md
+++ b/src/connections/destinations/catalog/actions-optimizely-data-platform/index.md
@@ -1,6 +1,5 @@
---
title: Optimizely Data Platform Destination
-beta: true
id: 6512d7f86bdccc3829fc4ac3
---
diff --git a/src/connections/destinations/catalog/actions-pardot/index.md b/src/connections/destinations/catalog/actions-pardot/index.md
index 05d5d945c2..73d0d29705 100644
--- a/src/connections/destinations/catalog/actions-pardot/index.md
+++ b/src/connections/destinations/catalog/actions-pardot/index.md
@@ -53,7 +53,7 @@ To send data to a Salesforce Pardot sandbox instance, navigate to **Settings** a
Your sandbox username appends the sandbox name to your Salesforce production username. For example, if a username for a production org is `user@acme.com` and the sandbox is named `test`, the username to log in to the sandbox is `user@acme.com.test`.
> info ""
-> Data and configuration can’t be shared between sandbox and production accounts. Make sure you use the Pardot Business Unit ID corresponding to your sandbox account. Information on how to create a sandbox for Pardot can be found [here](https://help.salesforce.com/s/articleView?language=en_US&type=5&id=sf.pardot_sf_connector_sandbox.htm){:target="_blank"}.
+> Data and configuration can’t be shared between sandbox and production accounts. Make sure you use the Pardot Business Unit ID corresponding to your sandbox account. Information on how to create a sandbox for Pardot can be found in the Salesforce [Create a Sandbox for Account Engagement](https://help.salesforce.com/s/articleView?language=en_US&type=5&id=sf.pardot_sf_connector_sandbox.htm){:target="_blank"} documentation.
### How do I add custom prospect fields?
Custom fields can be included in the Other Fields mapping. Custom fields must be predefined in your Pardot account and should end with `__c` (for example, `custom_field__c`). Please include the `__c` in your mapping.
diff --git a/src/connections/destinations/catalog/actions-pendo-web/index.md b/src/connections/destinations/catalog/actions-pendo-web/index.md
index 4ae5fd21e8..22b8d70baa 100644
--- a/src/connections/destinations/catalog/actions-pendo-web/index.md
+++ b/src/connections/destinations/catalog/actions-pendo-web/index.md
@@ -1,7 +1,6 @@
---
title: Pendo Web (Actions) Destination
id: 6501a4325a8a629197cdd691
-beta: true
hide-boilerplate: true
hide-dossier: true
---
diff --git a/src/connections/destinations/catalog/actions-pinterest-conversions-api/index.md b/src/connections/destinations/catalog/actions-pinterest-conversions-api/index.md
index c1f4d90a65..92b6a68be1 100644
--- a/src/connections/destinations/catalog/actions-pinterest-conversions-api/index.md
+++ b/src/connections/destinations/catalog/actions-pinterest-conversions-api/index.md
@@ -40,7 +40,7 @@ To connect the Pinterest Conversions API Destination:
- Destination Name
- [Ad Account ID](https://developers.pinterest.com/docs/conversions/conversions/#Find%20your%20%2Cad_account_id#Find%20your%20%2Cad_account_id#Find%20your%20%2Cad_account_id){:target="_blank”}
- [Conversions Token](https://developers.pinterest.com/docs/conversions/conversions/#Get%20the%20conversion%20token){:target="_blank”}
-6. Navigate to the **Mappings** tab, there are already Prebuilt mapping like `Checkout,Search,Add to Cart` defined with prescribed parameter . All required ,recommended and optional fields are listed [here](https://developers.pinterest.com/docs/conversions/best/#Authenticating%20for%20the%20Conversion%20Tracking%20endpoint#The%20%2Cuser_data%2C%20and%20%2Ccustom_data%2C%20objects#Required%2C%20recommended%2C%20and%20optional%20fields#Required%2C%20recommended%2C%20and%20optional%20fields){:target="_blank”}
+6. Navigate to the **Mappings** tab, there are already Prebuilt mapping like `Checkout`, `Search`, `Add to Cart` defined with prescribed parameters. All required, recommended, and optional fields are listed in Pinterest's [Best practices](https://developers.pinterest.com/docs/api-features/conversion-best-practices/#required-recommended-and-optional-fields){:target="_blank”} documentation.
7. If you want to create **New Mapping**, and select **Report Conversions Event** ,configure and enable it.
8. Follow the steps in the Destinations Actions documentation on [Customizing mappings](/docs/connections/destinations/actions/#customize-mappings).
9. Enable the destination using the **Enable Destination** toggle switch and click **Save Changes**.
diff --git a/src/connections/destinations/catalog/actions-pushwoosh/index.md b/src/connections/destinations/catalog/actions-pushwoosh/index.md
index 8ea86c48ee..058b9589b7 100644
--- a/src/connections/destinations/catalog/actions-pushwoosh/index.md
+++ b/src/connections/destinations/catalog/actions-pushwoosh/index.md
@@ -1,7 +1,6 @@
---
title: Pushwoosh (Actions) Destination
id: 64e72af1eabf77368b877a51
-beta: true
---
{% include content/plan-grid.md name="actions" %}
diff --git a/src/connections/destinations/catalog/actions-qualtrics/index.md b/src/connections/destinations/catalog/actions-qualtrics/index.md
index 3b14967b9a..9829c1c05c 100644
--- a/src/connections/destinations/catalog/actions-qualtrics/index.md
+++ b/src/connections/destinations/catalog/actions-qualtrics/index.md
@@ -35,7 +35,7 @@ To link your Qualtrics destination in Segment to your Qualtrics workspace, [Qual
2. Find the Destinations Actions item in the left navigation, and click it.
3. Click **Configure Qualtrics**.
4. Select an existing Source to connect to Qualtrics (Actions).
-5. To authenticate, enter your API key & Datacenter ID. To locate your API key & Datacenter ID, follow in the instructions found [here](https://api.qualtrics.com/ZG9jOjg3NjYzNQ-finding-your-qualtrics-i-ds){:target="_blank”}.
+5. To authenticate, enter your API key & Datacenter ID. To locate your API key & Datacenter ID, follow in the instructions in the [Finding your Qualtrics IDs](https://api.qualtrics.com/ZG9jOjg3NjYzNQ-finding-your-qualtrics-i-ds){:target="_blank”} documentation.
diff --git a/src/connections/destinations/catalog/actions-revx/index.md b/src/connections/destinations/catalog/actions-revx/index.md
index 43a60ed476..86f1ac47a3 100644
--- a/src/connections/destinations/catalog/actions-revx/index.md
+++ b/src/connections/destinations/catalog/actions-revx/index.md
@@ -1,7 +1,6 @@
---
title: RevX Cloud (Actions) Destination
id: 6464ef424ac5c5f47f5f3968
-beta: true
---
{% include content/plan-grid.md name="actions" %}
diff --git a/src/connections/destinations/catalog/actions-rupt/index.md b/src/connections/destinations/catalog/actions-rupt/index.md
index bfcde02af8..428a98f759 100644
--- a/src/connections/destinations/catalog/actions-rupt/index.md
+++ b/src/connections/destinations/catalog/actions-rupt/index.md
@@ -2,7 +2,6 @@
title: Rupt (Actions) Destination
hide-boilerplate: true
hide-dossier: true
-beta: true
id: 6501a5225aa338d11164cc0f
---
diff --git a/src/connections/destinations/catalog/actions-salesforce/index.md b/src/connections/destinations/catalog/actions-salesforce/index.md
index 0cc74b5dbc..14b99750ae 100644
--- a/src/connections/destinations/catalog/actions-salesforce/index.md
+++ b/src/connections/destinations/catalog/actions-salesforce/index.md
@@ -36,6 +36,12 @@ Before you connect Segment to Salesforce, please ensure you have a Salesforce ac
6. Follow the steps in the Destinations Actions documentation on [Customizing mappings](/docs/connections/destinations/actions/#customizing-mappings). You must select which Event Types and/or Event Names will trigger each mapping.
7. Enable the destination and configured mappings.
+> info "Salesforce (Actions) authentication limitations"
+> You must authenticate with the Salesforce (Actions) destination using OAuth. A single user can connect up to 5 Salesforce destinations, but upon connecting a 6th instance of the Salesforce (Actions) destination, Salesforce revokes the oldest destination's authorization. If the same user reauthorizes that same destination, this same behavior occurs on the next oldest destination that was authorized, and so on. To prevent this behavior, ensure that a different user with the same Salesforce permissions connects any additional Salesforce destinations.
+>
+> _For additional information on these limitations, see the Salesforce [Manage OAuth-Enabled Connected Apps Access to Your Data](https://help.salesforce.com/s/articleView?id=sf.remoteaccess_request_manage.htm&type=5#:~:text=Each%20connected%20app%20allows%20five%20unique%20approvals%20per%20user.){:target="_blank”} documentation._
+
+
{% include components/actions-fields.html %}
## Configuration options
diff --git a/src/connections/destinations/catalog/actions-schematic/index.md b/src/connections/destinations/catalog/actions-schematic/index.md
index 8c45c9ad8f..de283630d8 100644
--- a/src/connections/destinations/catalog/actions-schematic/index.md
+++ b/src/connections/destinations/catalog/actions-schematic/index.md
@@ -1,6 +1,5 @@
---
title: Schematic (Actions) Destination
-beta: true
id: 65b8e9eca1b5903a031c6378
---
@@ -25,4 +24,4 @@ Once you've connected Schematic to Segment, you can configure how you want to se
## Additional Context
-Schematic only accepts Track event names that contain alphanumeric characters, dashes, and underscores. If Segment event names have other characters, like spaces, the Schematic destination automatically snake_cases the event name before passing to Schematic. Segment passes the raw event name as an event trait.
\ No newline at end of file
+Schematic only accepts Track event names that contain alphanumeric characters, dashes, and underscores. If Segment event names have other characters, like spaces, the Schematic destination automatically snake_cases the event name before passing to Schematic. Segment passes the raw event name as an event trait.
diff --git a/src/connections/destinations/catalog/actions-screeb-web/index.md b/src/connections/destinations/catalog/actions-screeb-web/index.md
index e32e60f73c..9c2aa1eb0d 100644
--- a/src/connections/destinations/catalog/actions-screeb-web/index.md
+++ b/src/connections/destinations/catalog/actions-screeb-web/index.md
@@ -1,7 +1,6 @@
---
title: Screeb Web (Actions) Destination
id: 64820d8030d09e775fbac372
-beta: true
---
{% include content/plan-grid.md name="actions" %}
diff --git a/src/connections/destinations/catalog/actions-stackadapt-cloud/index.md b/src/connections/destinations/catalog/actions-stackadapt-cloud/index.md
index d0d132e18e..d95a4ecbeb 100644
--- a/src/connections/destinations/catalog/actions-stackadapt-cloud/index.md
+++ b/src/connections/destinations/catalog/actions-stackadapt-cloud/index.md
@@ -2,7 +2,6 @@
title: StackAdapt Destination
hide-boilerplate: true
hide-dossier: true
-beta: true
id: 61d8859be4f795335d5c677c
hidden: true
redirect_from: '/connections/destinations/catalog/actions-stackadapt/'
diff --git a/src/connections/destinations/catalog/actions-surveysparrow/index.md b/src/connections/destinations/catalog/actions-surveysparrow/index.md
index 73f2ca53c4..b1d9342f67 100644
--- a/src/connections/destinations/catalog/actions-surveysparrow/index.md
+++ b/src/connections/destinations/catalog/actions-surveysparrow/index.md
@@ -1,7 +1,6 @@
---
title: SurveySparrow (Actions) Destination
hidden: true
-beta: true
---
{% include content/plan-grid.md name="actions" %}
@@ -19,4 +18,4 @@ This destination is maintained by SurveySparrow. For any issues with the destina
6. Click **Save** and copy the **Access Token**.
7. Enter the **Access Token** in the SurveySparrow destination settings in Segment.
-{% include components/actions-fields.html %}
\ No newline at end of file
+{% include components/actions-fields.html %}
diff --git a/src/connections/destinations/catalog/actions-survicate/index.md b/src/connections/destinations/catalog/actions-survicate/index.md
index 8df29e7707..d6ab0917d6 100644
--- a/src/connections/destinations/catalog/actions-survicate/index.md
+++ b/src/connections/destinations/catalog/actions-survicate/index.md
@@ -1,7 +1,6 @@
---
title: Survicate (Actions) Destination
id: 65a6ac19ea6d3ced628be00b
-beta: true
---
[Survicate](https://survicate.com/integrations/segment-survey/?utm_source=segment&utm_medium=referral){:target="_blank”} is a complete toolkit for customer feedback.
diff --git a/src/connections/destinations/catalog/actions-taboola-actions/index.md b/src/connections/destinations/catalog/actions-taboola-actions/index.md
index 02b968b929..93ca58ea66 100644
--- a/src/connections/destinations/catalog/actions-taboola-actions/index.md
+++ b/src/connections/destinations/catalog/actions-taboola-actions/index.md
@@ -1,7 +1,6 @@
---
title: Taboola (Actions) Destination
id: 66684ba89c0523461d8bb7f3
-beta: true
---
{% include content/plan-grid.md name="actions" %}
diff --git a/src/connections/destinations/catalog/actions-the-trade-desk-crm/index.md b/src/connections/destinations/catalog/actions-the-trade-desk-crm/index.md
index 68cb3309a6..8fc81951b8 100644
--- a/src/connections/destinations/catalog/actions-the-trade-desk-crm/index.md
+++ b/src/connections/destinations/catalog/actions-the-trade-desk-crm/index.md
@@ -3,7 +3,6 @@ title: The Trade Desk CRM Destination
hide-personas-partial: true
hide-boilerplate: true
hide-dossier: false
-beta: true
id: 6440068936c4fb9f699b0645
redirect_from: "/connections/destinations/catalog/the-trade-desk-crm/"
---
diff --git a/src/connections/destinations/catalog/actions-toplyne-cloud/index.md b/src/connections/destinations/catalog/actions-toplyne-cloud/index.md
index 7082de33e8..231730fa79 100644
--- a/src/connections/destinations/catalog/actions-toplyne-cloud/index.md
+++ b/src/connections/destinations/catalog/actions-toplyne-cloud/index.md
@@ -1,6 +1,5 @@
---
title: Toplyne Cloud Mode (Actions) Destination
-beta: true
hide-boilerplate: true
hide-dossier: true
id: 6408ac6c144a7d5ac55cf414
diff --git a/src/connections/destinations/catalog/actions-usermaven/index.md b/src/connections/destinations/catalog/actions-usermaven/index.md
index 9333c30ebf..4e3a43983a 100644
--- a/src/connections/destinations/catalog/actions-usermaven/index.md
+++ b/src/connections/destinations/catalog/actions-usermaven/index.md
@@ -1,7 +1,6 @@
---
title: Usermaven (Actions) Destination
id: 643fdf094cfdbcf1bcccbc42
-beta: true
---
{% include content/plan-grid.md name="actions" %}
diff --git a/src/connections/destinations/catalog/actions-usermotion/index.md b/src/connections/destinations/catalog/actions-usermotion/index.md
index 53d884712a..6afd804c20 100644
--- a/src/connections/destinations/catalog/actions-usermotion/index.md
+++ b/src/connections/destinations/catalog/actions-usermotion/index.md
@@ -1,7 +1,6 @@
---
title: UserMotion (Actions) Destination
id: 6537b5da8f27fd20713a5ba8
-beta: true
---
{% include content/plan-grid.md name="actions" %}
diff --git a/src/connections/destinations/catalog/actions-userpilot-cloud/index.md b/src/connections/destinations/catalog/actions-userpilot-cloud/index.md
index 4e8ad75ee9..e62f209722 100644
--- a/src/connections/destinations/catalog/actions-userpilot-cloud/index.md
+++ b/src/connections/destinations/catalog/actions-userpilot-cloud/index.md
@@ -1,7 +1,6 @@
---
title: Userpilot Cloud (Actions) Destination
id: 647f30a35eedd03afde0a1c3
-beta: true
---
{% include content/plan-grid.md name="actions" %}
diff --git a/src/connections/destinations/catalog/actions-userpilot-web/index.md b/src/connections/destinations/catalog/actions-userpilot-web/index.md
index 43c6321089..3b09855e11 100644
--- a/src/connections/destinations/catalog/actions-userpilot-web/index.md
+++ b/src/connections/destinations/catalog/actions-userpilot-web/index.md
@@ -1,7 +1,6 @@
---
title: Userpilot Web (Actions) Destination
id: 6480b4eeab29eca5415089d4
-beta: true
---
{% include content/plan-grid.md name="actions" %}
diff --git a/src/connections/destinations/catalog/actions-xtremepush/index.md b/src/connections/destinations/catalog/actions-xtremepush/index.md
index 983c2e7d0d..bfa2b82c1f 100644
--- a/src/connections/destinations/catalog/actions-xtremepush/index.md
+++ b/src/connections/destinations/catalog/actions-xtremepush/index.md
@@ -1,6 +1,5 @@
---
title: Xtremepush (Actions) Destination
-beta: true
id: 661e9787658d112ba31b59a7
versions:
- name: Xtremepush Destination
diff --git a/src/connections/destinations/catalog/actions-yahoo-audiences/index.md b/src/connections/destinations/catalog/actions-yahoo-audiences/index.md
index 6dadbf32fe..67c379b041 100644
--- a/src/connections/destinations/catalog/actions-yahoo-audiences/index.md
+++ b/src/connections/destinations/catalog/actions-yahoo-audiences/index.md
@@ -1,7 +1,6 @@
---
title: Yahoo Audiences Destination
id: 6514281004d549fae3fd086a
-beta: true
---
The Yahoo Audiences integration facilitates seamless connectivity between Engage Audiences and Yahoo DSP, offering users the flexibility to configure their data delivery preferences within the Segment platform.
diff --git a/src/connections/destinations/catalog/adikteev/index.md b/src/connections/destinations/catalog/adikteev/index.md
index 065af29ecd..a066cc15c6 100644
--- a/src/connections/destinations/catalog/adikteev/index.md
+++ b/src/connections/destinations/catalog/adikteev/index.md
@@ -8,16 +8,14 @@ This destination is maintained by Adikteev. For any issues with the destination,
## Getting Started
+This destination only supports events from Mobile sources.
-
-Currently, this destination supports events originating from Mobile sources alone.
-
-You can read more about how to define a source [here](/docs/connections/sources/#what-is-a-source).
+You can read more about how to define a source in Segment's [Source Overview](/docs/connections/sources/#what-is-a-source) docs.
To get started with Adikteev and Segment, you'll need an account with Adikteev.
-If you don't have an account with Adikteev and want to use our services together with Segment contact us here: [contact@adikteev.com](mailto:contact@adikteev.com).
+If you don't have an account with Adikteev, contact them at [contact@adikteev.com](mailto:contact@adikteev.com).
## Track
-Adikteev is built to understand and analyze all the events generated by your app. For us to receive and analyze the events correctly, make sure you use the right [Track](/docs/connections/spec/track/) events as specified by Segment's Spec.
+Adikteev accepts [Track](/docs/connections/spec/track/) events as specified by the Segment Spec.
diff --git a/src/connections/destinations/catalog/adobe-analytics/settings.md b/src/connections/destinations/catalog/adobe-analytics/settings.md
index 54339a9d27..1edcd1a18e 100644
--- a/src/connections/destinations/catalog/adobe-analytics/settings.md
+++ b/src/connections/destinations/catalog/adobe-analytics/settings.md
@@ -454,7 +454,7 @@ analytics.page({
## Custom Traffic Variables - props
-Custom Traffic Variables, also known as props, allow you to correlate custom data with specific traffic-related events in Adobe. To learn more about props and how to configure them in the Adobe UI, see the documentation [here](https://docs.adobe.com/content/help/en/analytics/admin/admin-tools/traffic-variables/traffic-var.html){:target="_blank”}. You can map your Segment properties in your destination settings to any of your Adobe props.
+Custom Traffic Variables, also known as props, allow you to correlate custom data with specific traffic-related events in Adobe. To learn more about props and how to configure them in the Adobe UI, see the documentation on [Traffic variables (props) overview](https://docs.adobe.com/content/help/en/analytics/admin/admin-tools/traffic-variables/traffic-var.html){:target="_blank”}. You can map your Segment properties in your destination settings to any of your Adobe props.

diff --git a/src/connections/destinations/catalog/adobe-target-cloud-mode/index.md b/src/connections/destinations/catalog/adobe-target-cloud-mode/index.md
index 6969bd1c65..8adc7e000a 100644
--- a/src/connections/destinations/catalog/adobe-target-cloud-mode/index.md
+++ b/src/connections/destinations/catalog/adobe-target-cloud-mode/index.md
@@ -3,5 +3,4 @@ title: 'Adobe Target Cloud Mode Destination'
hidden: true
id: 61aa712b857e8c85c3b5a849
published: false
-beta: true
---
diff --git a/src/connections/destinations/catalog/adobe-target/index.md b/src/connections/destinations/catalog/adobe-target/index.md
index f444d81536..f230b18d5c 100644
--- a/src/connections/destinations/catalog/adobe-target/index.md
+++ b/src/connections/destinations/catalog/adobe-target/index.md
@@ -2,7 +2,6 @@
title: Adobe Target Destination
strat: adobe
rewrite: true
-beta: true
hidden: true
published: false
---
diff --git a/src/connections/destinations/catalog/akita/index.md b/src/connections/destinations/catalog/akita/index.md
index d31bfc8a8b..7c85b76833 100644
--- a/src/connections/destinations/catalog/akita/index.md
+++ b/src/connections/destinations/catalog/akita/index.md
@@ -1,5 +1,4 @@
---
-beta: true
title: Akita Destination
published: false
hidden: true
diff --git a/src/connections/destinations/catalog/all-aboard/index.md b/src/connections/destinations/catalog/all-aboard/index.md
index 16226b7ebd..b4d7572251 100644
--- a/src/connections/destinations/catalog/all-aboard/index.md
+++ b/src/connections/destinations/catalog/all-aboard/index.md
@@ -1,5 +1,4 @@
---
-beta: true
title: All Aboard Destination
---
diff --git a/src/connections/destinations/catalog/amazon-personalize/index.md b/src/connections/destinations/catalog/amazon-personalize/index.md
index cc0c6f6371..d128f02fbe 100644
--- a/src/connections/destinations/catalog/amazon-personalize/index.md
+++ b/src/connections/destinations/catalog/amazon-personalize/index.md
@@ -194,7 +194,7 @@ Segment's S3 destination contains a copy of all of the source data you configure
Note that this step is not required unless you plan to do batch data extraction from S3.
-Your Glue ETL job will need to crawl each source folder to extract the backup data that forms your training set. Analysis of this data set is beyond the scope of this document. It is strongly recommended you familiarize yourself with the types of events that can be sent through Segment. Segment's event structure is described in detail [here](/docs/connections/sources/catalog/libraries/server/http/).
+Your Glue ETL job will need to crawl each source folder to extract the backup data that forms your training set. Analysis of this data set is beyond the scope of this document. It is strongly recommended you familiarize yourself with the types of events that can be sent through Segment. Segment's event structure is described in detail on Segment's [HTTP source](/docs/connections/sources/catalog/libraries/server/http/) documentation.
The following examples show how to configure an AWS Glue job to convert Segment historical data into the Apache Avro format that Personalize wants to consume for training data sets.
@@ -596,7 +596,7 @@ Once Segment's event CSV is finished importing into a user-item interaction data

2. On the **Create solution** page, enter a **Solution name**.
- * For a discussion on the different recipes you can use with Personalize, see [here](https://docs.aws.amazon.com/personalize/latest/dg/working-with-predefined-recipes.html){:target="_blank"}.
+ * For a discussion on the different recipes you can use with Personalize, see Amazon's [Choosing a recipe](https://docs.aws.amazon.com/personalize/latest/dg/working-with-predefined-recipes.html){:target="_blank"} documentation.

diff --git a/src/connections/destinations/catalog/appcues-mobile/index.md b/src/connections/destinations/catalog/appcues-mobile/index.md
index fb475c61b7..667dc1b45a 100644
--- a/src/connections/destinations/catalog/appcues-mobile/index.md
+++ b/src/connections/destinations/catalog/appcues-mobile/index.md
@@ -3,5 +3,4 @@ title: 'Appcues Mobile Destination'
hidden: true
id: 620ff0b76a6f5d2317a7a353
published: false
-beta: true
---
diff --git a/src/connections/destinations/catalog/appfit/index.md b/src/connections/destinations/catalog/appfit/index.md
index f6410ada85..250c029103 100644
--- a/src/connections/destinations/catalog/appfit/index.md
+++ b/src/connections/destinations/catalog/appfit/index.md
@@ -3,5 +3,4 @@ title: 'AppFit Destination'
hidden: true
id: 64b67be0d0dd66094c162ca7
published: false
-beta: true
---
diff --git a/src/connections/destinations/catalog/appsflyer/index.md b/src/connections/destinations/catalog/appsflyer/index.md
index b369b36dc5..936cbd68cc 100644
--- a/src/connections/destinations/catalog/appsflyer/index.md
+++ b/src/connections/destinations/catalog/appsflyer/index.md
@@ -217,7 +217,7 @@ Segment uses AppsFlyer's `transactionId` deduplication when you send an `orderId
## Install Attributed
### Client
-Segment will automatically trigger an `Install Attributed` event if you have **trackAttributionData** enabled in your settings, and the Segment-AppsFlyer integration installed in your app. The event payload will adhere to the `Install Attributed` event specification documented [here](/docs/connections/spec/mobile/#install-attributed) and will propagate to your other downstream destinations.
+Segment will automatically trigger an `Install Attributed` event if you have **trackAttributionData** enabled in your settings, and the Segment-AppsFlyer integration installed in your app. The event payload will adhere to the `Install Attributed` event specification explained in Segment's [Mobile Spec](/docs/connections/spec/mobile/#install-attributed) and will propagate to your other downstream destinations.
### Server
If you track events server-side, AppsFlyer can still send attribution postbacks, but you need to configure this functionality in your AppsFlyer account. To enable this:
diff --git a/src/connections/destinations/catalog/autopilotapp/index.md b/src/connections/destinations/catalog/autopilotapp/index.md
index 0fb28a7334..8ee26c73ab 100644
--- a/src/connections/destinations/catalog/autopilotapp/index.md
+++ b/src/connections/destinations/catalog/autopilotapp/index.md
@@ -1,7 +1,6 @@
---
title: Ortto Destination
rewrite: true
-beta: true
id: 613ef845b8784e858199fe2d
---
[Ortto](https://ortto.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank"} helps thousands of organizations around the world automate their communications through email notifications, such as regular email newsletters, abandoned cart emails, as well as SMS messages, and more, to help organizations market and grow their businesses faster.
diff --git a/src/connections/destinations/catalog/autopilothq/index.md b/src/connections/destinations/catalog/autopilothq/index.md
index 0385ead9d2..632e353ea2 100644
--- a/src/connections/destinations/catalog/autopilothq/index.md
+++ b/src/connections/destinations/catalog/autopilothq/index.md
@@ -12,7 +12,7 @@ Are you instead trying to set up Autopilot as a Source to get data from Autopilo
## Getting Started
1. From the Segment web app, click **Catalog**.
2. Search for "Autopilot" in the Catalog, select it, and choose which of your sources to connect the destination to.
- 3. In the destination settings, enter your "API Key" from [here](https://login.autopilothq.com/login#settings/app-connections/segment-sync){:target="_blank”} or go to Autopilot: Settings -> App Connections -> Segment and copy/paste the API key which is listed there.
+ 3. In the destination settings, enter your "API Key" from [your Autopilot Segment Sync settings page](https://login.autopilothq.com/login#settings/app-connections/segment-sync){:target="_blank”} or go to Autopilot: Settings -> App Connections -> Segment and copy/paste the API key which is listed there.
4. Once enabled 'identify' and 'track' calls will be sent to Autopilot.
## Identify
diff --git a/src/connections/destinations/catalog/azure-function/index.md b/src/connections/destinations/catalog/azure-function/index.md
index 9628d80e7d..6e404da525 100644
--- a/src/connections/destinations/catalog/azure-function/index.md
+++ b/src/connections/destinations/catalog/azure-function/index.md
@@ -1,6 +1,5 @@
---
rewrite: true
-beta: true
title: Azure Function Destination
id: 5cbf95e258453600011d6d8f
---
diff --git a/src/connections/destinations/catalog/batch/index.md b/src/connections/destinations/catalog/batch/index.md
index e24f72a142..560aaef561 100644
--- a/src/connections/destinations/catalog/batch/index.md
+++ b/src/connections/destinations/catalog/batch/index.md
@@ -1,6 +1,5 @@
---
title: Batch Destination
-beta: true
id: 596d11f870a3e552b957e6d9
---
The Batch.com integration code is open sourced on GitHub. Feel free to check it out: [iOS](https://github.com/BatchLabs/ios-segment-integration){:target="_blank"}, [Android](https://github.com/BatchLabs/android-segment-integration){:target="_blank"}.
diff --git a/src/connections/destinations/catalog/beamer/index.md b/src/connections/destinations/catalog/beamer/index.md
index 879597c641..4d559498da 100644
--- a/src/connections/destinations/catalog/beamer/index.md
+++ b/src/connections/destinations/catalog/beamer/index.md
@@ -1,6 +1,5 @@
---
title: Beamer Destination
-beta: true
rewrite: true
id: 5d2d8f56f159f30001b3c3a9
---
diff --git a/src/connections/destinations/catalog/boomtrain/index.md b/src/connections/destinations/catalog/boomtrain/index.md
index b57ef788bb..069adb6bda 100644
--- a/src/connections/destinations/catalog/boomtrain/index.md
+++ b/src/connections/destinations/catalog/boomtrain/index.md
@@ -1,6 +1,5 @@
---
title: Boomtrain Destination
-beta: true
---
Boomtrain is a predictive intelligence platform for marketers that uses machine learning to drive increased clicks, engagement and revenue through customer communications. [Visit Website](http://boomtrain.com){:target="_blank"}.
diff --git a/src/connections/destinations/catalog/branch-metrics/index.md b/src/connections/destinations/catalog/branch-metrics/index.md
index 03a9b33921..d483ae10f3 100644
--- a/src/connections/destinations/catalog/branch-metrics/index.md
+++ b/src/connections/destinations/catalog/branch-metrics/index.md
@@ -10,9 +10,9 @@ id: 5642909ae954a874ca44c582
**As of November 2019, the Branch mobile SDKs for Segment are in maintenance mode.**
-Existing users of the Branch SDKs are unaffected, however new installations must implement the Branch native SDK separately. They can then enable Branch's [data export integration](https://docs.branch.io/integrations/segment-export/) to push additional data to Segment, and [data import integration](https://docs.branch.io/integrations/segment-import/){:target="_blank"} to pull additional Segment data into the Branch dashboard.
+Existing users of the Branch SDKs are unaffected, however new installations must implement the Branch native SDK separately. They can then enable Branch's [data export integration](https://docs.branch.io/integrations/segment-export/){:target="_blank”} to push additional data to Segment, and [data import integration](https://docs.branch.io/integrations/segment-import/){:target="_blank"} to pull additional Segment data into the Branch dashboard.
-The legacy instructions for implementing the Branch mobile SDKs for Segment have been removed from this documentation. If you need access to the removed sections, you can view them [here](https://web.archive.org/web/20191113225102//docs/connections/destinations/catalog/branch-metrics/){:target="_blank"}.
+The legacy instructions for implementing the Branch mobile SDKs for Segment have been removed from this documentation. If you need access to the removed sections, you can view the [Archived version of this documentation](https://web.archive.org/web/20191113225102//docs/connections/destinations/catalog/branch-metrics/){:target="_blank"}.
---
diff --git a/src/connections/destinations/catalog/braze/index.md b/src/connections/destinations/catalog/braze/index.md
index 0cc90e7c3d..2406ad1ae4 100644
--- a/src/connections/destinations/catalog/braze/index.md
+++ b/src/connections/destinations/catalog/braze/index.md
@@ -57,9 +57,8 @@ For issues with mobile platforms (iOS, Android, Swift, or Kotlin), contact Braze
[SEGAnalytics setupWithConfiguration:config];
```
- [Here](https://github.com/Appboy/appboy-segment-ios/blob/master/CocoapodsExample/Segment-Appboy/SEGAppDelegate.m){:target="_blank"}
- is a sample project which shows how to integrate the above.
-
+ You can find a sample project in the [@Appboy/appboy-segment-ios](https://github.com/Appboy/appboy-segment-ios/blob/master/CocoapodsExample/Segment-Appboy/SEGAppDelegate.m){:target="_blank"} repository that shows how to integrate the previous snippet.
+
#### Sample App
Braze created a sample iOS application that integrates Braze using Segment. See the Braze [GitHub repository](https://github.com/Appboy/appboy-segment-ios/tree/master/CocoapodsExample){:target="_blank"}
@@ -406,13 +405,17 @@ analytics.ready(function() {
});
```
-3. Set your GCM/FCM server API key and SenderID on the Braze dashboard. You can find more details for this [here](https://www.braze.com/docs/developer_guide/platform_integration_guides/web/initial_sdk_setup#step-4-set-your-gcmfcm-server-api-key-and-senderid-on-the-Braze-dashboard){:target="_blank"}.
+3. Set your GCM/FCM server API key and SenderID on the Braze dashboard. You can find more details for this in Braze's [Standard Android push integration](https://www.braze.com/docs/developer_guide/platform_integration_guides/android/push_notifications/android/integration/standard_integration/#step-6-upload-your-json-credentials-to-braze){:target="_blank"} documentation.
+
+
-4. To support push notifications on Safari, add your Website Push ID into your Segment Settings UI and Segment sends it when the Braze Web SDK initializes. To get your Website Push ID, follow the first two bullet points in [these instructions](https://www.braze.com/docs/developer_guide/platform_integration_guides/web/initial_sdk_setup#step-5-configure-safari-push){:target="_blank"}.
+4. To support push notifications on Safari, add your Website Push ID into your Segment Settings UI and Segment sends it when the Braze Web SDK initializes. To get your Website Push ID, follow the first two bullet points in [these instructions](https://www.braze.com/docs/developer_guide/platform_integration_guides/web/push_notifications/integration/#safari){:target="_blank"}.
### Soft Push Prompts
-1. Follow [step one](https://www.braze.com/docs/developer_guide/platform_integration_guides/web/initial_sdk_setup#soft-push-prompts){:target="_blank"} to create a "Prime for Push" in-app messaging Campaign on the Braze dashboard.
+1. Follow [step one](https://www.braze.com/docs/developer_guide/platform_integration_guides/web/push_notifications/soft_push_prompt/#step-1-create-a-push-primer-campaign){:target="_blank"} to create a "Prime for Push" in-app messaging Campaign on the Braze dashboard.
2. Disable your [Automatically Send In-App Messages Destination setting](/docs/connections/destinations/catalog/braze/#settings). By default, it is enabled when you enable the Braze destination.
@@ -455,7 +458,7 @@ analytics.ready(function() {
});
```
-For more details on this snippet, check out Braze's docs [here](https://www.braze.com/docs/developer_guide/platform_integration_guides/web/initial_sdk_setup#soft-push-prompts){:target="_blank"}.
+For more details on this snippet, check out Braze's [Soft push prompt](https://www.braze.com/docs/developer_guide/platform_integration_guides/web/push_notifications/soft_push_prompt/#step-3-update-integration){:target="_blank"} docs.
**Note:** Place this snippet outside of your [Segment Snippet](/docs/connections/sources/catalog/libraries/website/javascript/quickstart/#step-2-copy-the-segment-snippet) within your `script` tag.
diff --git a/src/connections/destinations/catalog/byteplus/index.md b/src/connections/destinations/catalog/byteplus/index.md
index 142a3eb74f..6dfcc3f8cf 100644
--- a/src/connections/destinations/catalog/byteplus/index.md
+++ b/src/connections/destinations/catalog/byteplus/index.md
@@ -3,7 +3,6 @@ rewrite: true
title: BytePlus
redirect_from:
- '/connections/destinations/catalog/datarangers/'
-beta: true
id: 60347eb973e8ce37bc360568
---
BytePlus provides product analytics for mobile and web applications, including event/retention/funnel/error analysis, user segmentation, user paths, behavior lookup, A/B testing, and other functions.
diff --git a/src/connections/destinations/catalog/callexa/index.md b/src/connections/destinations/catalog/callexa/index.md
index e75f5ed3f1..d462fced72 100644
--- a/src/connections/destinations/catalog/callexa/index.md
+++ b/src/connections/destinations/catalog/callexa/index.md
@@ -1,6 +1,5 @@
---
title: Callexa Destination
-beta: true
---
> This destination is maintained by Wigzo.
diff --git a/src/connections/destinations/catalog/clearbit-reveal/index.md b/src/connections/destinations/catalog/clearbit-reveal/index.md
index 71c46ea550..06686a0c2f 100644
--- a/src/connections/destinations/catalog/clearbit-reveal/index.md
+++ b/src/connections/destinations/catalog/clearbit-reveal/index.md
@@ -3,12 +3,10 @@ title: Clearbit Reveal Destination
rewrite: true
id: 57e0726680412f644ff36883
---
-[Clearbit Reveal](https://clearbit.com/segment){:target="_blank"} helps customers instantly match IP addresses with company names, and see full profiles for all site visitors. It turns your anonymous web traffic into a full company profile — complete with industry, employee count, funding details, and much more. You can find a list of the different attributes you can collect with Clearbit [here](https://clearbit.com/attributes){:target="_blank"}.
+[Clearbit Reveal](https://clearbit.com/segment){:target="_blank"} helps customers instantly match IP addresses with company names, and see full profiles for all site visitors. It turns your anonymous web traffic into a full company profile — complete with industry, employee count, funding details, and much more. You can find a list of the different attributes you can collect with Clearbit [on Clearbit's attributes page](https://clearbit.com/attributes){:target="_blank"}.
## Getting Started
-
-
Setup within Segment:
1. From the Segment web app, click **Catalog**.
2. Search for "Clearbit Reveal" in the Catalog, select it, and choose which of your sources to connect the destination to.
diff --git a/src/connections/destinations/catalog/clevertap-actions/index.md b/src/connections/destinations/catalog/clevertap-actions/index.md
index 447dd5bce5..340fd09d3c 100644
--- a/src/connections/destinations/catalog/clevertap-actions/index.md
+++ b/src/connections/destinations/catalog/clevertap-actions/index.md
@@ -3,5 +3,4 @@ title: 'CleverTap (Actions) Destination'
hidden: true
id: 61d7456b078e79929de4ee8c
published: false
-beta: true
---
diff --git a/src/connections/destinations/catalog/clicky/index.md b/src/connections/destinations/catalog/clicky/index.md
index 5490b60be8..3fd88a575a 100644
--- a/src/connections/destinations/catalog/clicky/index.md
+++ b/src/connections/destinations/catalog/clicky/index.md
@@ -5,14 +5,11 @@ id: 54521fd525e721e32a72eea2
---
[Clicky](https://clicky.com/){:target="_blank"} is a web analytics tool that enables you to monitor, analyze, and react to your blog or web site's traffic in real time. Clicky supports user segmentation, so marketers can define and track customers based on unique constraints like user action, traffic source, location, or device. Additionally, it allows on-site analytics in order to track total visitors on site, pages currently viewed, and user actions like pageviews, downloads, sign ups, and session duration.
-Our Clicky destination code is open-source on GitHub. You can check out the code [here](https://github.com/segment-integrations/analytics.js-integration-clicky){:target="_blank"}.
+Our Clicky destination code is open-source on GitHub. You can check out the code [in the @segment-integrations/analytics.js-integration-clicky](https://github.com/segment-integrations/analytics.js-integration-clicky){:target="_blank"} repository.
## Getting Started
-
-
-
1. From the Segment web app, click **Catalog**.
2. Search for "Clicky" in the Catalog, select it, and choose which of your sources to connect the destination to.
3. In the destination settings, enter your Site ID in the settings. You can find your Site ID under the Preferences of your account.
diff --git a/src/connections/destinations/catalog/close/index.md b/src/connections/destinations/catalog/close/index.md
index 08e48d2959..2974c10457 100644
--- a/src/connections/destinations/catalog/close/index.md
+++ b/src/connections/destinations/catalog/close/index.md
@@ -1,7 +1,6 @@
---
title: 'Close Destination'
id: 61f8296b7d15c30a3bbe2b76
-beta: true
hide-boilerplate: true
hide-dossier: true
redirect_from:
diff --git a/src/connections/destinations/catalog/comscore/index.md b/src/connections/destinations/catalog/comscore/index.md
index 3d2c037833..65e16849a2 100644
--- a/src/connections/destinations/catalog/comscore/index.md
+++ b/src/connections/destinations/catalog/comscore/index.md
@@ -25,10 +25,10 @@ To get started with comScore and Segment, you'll want to first integrate your mo
For mobile sources, you will need to enter your comScore **c2 ID** and **Publisher Secret**.
### iOS
-To install comScore via Segment on iOS, please follow the additional set up steps in the Segment-Comscore iOS repository [here](https://github.com/segment-integrations/analytics-ios-integration-comscore#analytics-ios-integration-comscore){:target="_blank"}.
+To install comScore using Segment on iOS, please follow the additional set up steps in the [Segment-Comscore iOS repository](https://github.com/segment-integrations/analytics-ios-integration-comscore#analytics-ios-integration-comscore){:target="_blank"}.
### Android
-To install comScore via Segment on Android, please follow the additional set up steps in the Segment-Comscore Android repository [here](https://github.com/segment-integrations/analytics-android-integration-comscore#analytics-android-integration-comscore){:target="_blank"}.
+To install comScore using Segment on Android, please follow the additional set up steps in the [Segment-Comscore Android repository](https://github.com/segment-integrations/analytics-android-integration-comscore#analytics-android-integration-comscore){:target="_blank"}.
## Page
diff --git a/src/connections/destinations/catalog/convertly/index.md b/src/connections/destinations/catalog/convertly/index.md
index ec0473999f..a4e91704d3 100644
--- a/src/connections/destinations/catalog/convertly/index.md
+++ b/src/connections/destinations/catalog/convertly/index.md
@@ -1,7 +1,6 @@
---
title: Convertly Destination
id: 65e8b496eec9c40dbccbf749
-beta: true
---
[Convertly](https://www.tryconvertly.com){:target="\_blank”} lets you run AI on your product analytics. Create and generate charts and analyze data in minutes.
diff --git a/src/connections/destinations/catalog/cordialio/index.md b/src/connections/destinations/catalog/cordialio/index.md
index 78ae688a10..0fbc5a5387 100644
--- a/src/connections/destinations/catalog/cordialio/index.md
+++ b/src/connections/destinations/catalog/cordialio/index.md
@@ -1,6 +1,5 @@
---
title: Cordial Destination
-beta: true
hidden: true
---
diff --git a/src/connections/destinations/catalog/crazy-egg/index.md b/src/connections/destinations/catalog/crazy-egg/index.md
index 73df0af633..3ead934257 100644
--- a/src/connections/destinations/catalog/crazy-egg/index.md
+++ b/src/connections/destinations/catalog/crazy-egg/index.md
@@ -36,6 +36,6 @@ As this is automatically included in the `analytics.js` snippet by default, you
## Troubleshooting
### I can't map user variables
-The current Crazy Egg Destination doesn't support mapping of user variables out of the box. You will need to add your own additional JavaScript as specified [here](https://help.crazyegg.com/articles/61-user-variables){:target="_blank"}.
+The current Crazy Egg Destination doesn't support mapping of user variables out of the box. You will need to add your own additional JavaScript as specified in Crazy Egg's [Custom User Variables](https://support.crazyegg.com/hc/en-us/articles/360054584474-Custom-User-Variables){:target="_blank"} documentation.
{% include content/client-side-script-unverified.md %}
diff --git a/src/connections/destinations/catalog/cubitic/index.md b/src/connections/destinations/catalog/cubitic/index.md
index 48f975f551..06323625ca 100644
--- a/src/connections/destinations/catalog/cubitic/index.md
+++ b/src/connections/destinations/catalog/cubitic/index.md
@@ -1,6 +1,5 @@
---
title: Cubitic Destination
-beta: true
---
This destination is maintained by Cubitic.
diff --git a/src/connections/destinations/catalog/customer-io/index.md b/src/connections/destinations/catalog/customer-io/index.md
index a8ffce950d..83a9388f70 100644
--- a/src/connections/destinations/catalog/customer-io/index.md
+++ b/src/connections/destinations/catalog/customer-io/index.md
@@ -131,7 +131,7 @@ For that, you need to make the following calls:
## Application Installed
-[Application Installed](/docs/connections/spec/mobile/#application-installed) events will add or update a device in the person's Customer.io profile using [this](https://customer.io/docs/api/#operation/add_device){:target="_blank"} API endpoint. Note, you must pass a device token in your event payload using a `context.device.token` property. See more on Contextual properties [here](/docs/connections/spec/common/#context).
+[Application Installed](/docs/connections/spec/mobile/#application-installed) events will add or update a device in the person's Customer.io profile using the Customer.io [Add or update a customer device](https://customer.io/docs/api/#operation/add_device){:target="_blank"} API endpoint. Note, you must pass a device token in your event payload using a `context.device.token` property. See more on Contextual properties [in the Spec: Common](/docs/connections/spec/common/#context) docs.
{% comment %} api-example '{
"action": "track",
diff --git a/src/connections/destinations/catalog/customersuccessbox/index.md b/src/connections/destinations/catalog/customersuccessbox/index.md
deleted file mode 100644
index 3fb899e9e0..0000000000
--- a/src/connections/destinations/catalog/customersuccessbox/index.md
+++ /dev/null
@@ -1,93 +0,0 @@
----
-title: CustomerSuccessBox Destination
-rewrite: true
-id: 5c9ce8b88171a10001f9eefa
----
-[CustomerSuccessBox](https://customersuccessbox.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank”} is Outcome Driven Customer Success software, which helps maximize retention, drive product adoption and grow revenue for your B2B SaaS
-
-This destination is maintained by CustomerSuccessBox. For any issues with the destination, [contact the CustomerSuccessBox Support team](mailto:support@customersuccessbox.com).
-
-## Getting Started
-
-
-
-
-### Adding Destination
-
-1. From the Segment web app, click **Catalog**.
-2. Search for "CustomerSuccessBox" in the Catalog, select it, and choose which of your sources to connect the destination to.
-3. Copy "API key for POST request" from under "Settings (Gear icon) > Developer Console > API Key tab" in your CustomerSuccessBox.
-4. Fill "API key for POST request" as "API Key" for CustomerSuccessBox Destination app in Segment UI
-
-## Identify
-
-Send **account_id** and **user_id** in **traits** of an identify call to set and update the traits of a unique user belonging to a unique Account.
-
-To learn more about user traits that are supported (including custom traits), check **User traits** section from [here](https://support.customersuccessbox.com/article/77-customersuccessbox-destination-on-segment-com){:target="_blank”}.
-
-If you're not familiar with the Segment Specs, take a look to understand what the [Identify method](/docs/connections/spec/identify/) does. An example call would look like:
-
-```
-analytics.identify('userID123', {
- account_id: '12345678',
- user_id: 'john.doe@company.com'
-});
-```
-
-Identify calls will be sent to CustomerSuccessBox as an `identify` event.
-
-
-## Track
-
-Send **account_id** and **user_id** in properties of a track call to attribute the event to a unique user belonging to a unique Account.
-
-You can also pass **product_id** and **module_id** in properties of a track call to define a module and product for the event. To learn more, check **Understanding Product Usage** section [here](https://support.customersuccessbox.com/article/70-getting-started-with-customersuccessbox){:target="_blank”}.
-
-If you're not familiar with the Segment Specs, take a look to understand what the [Track method](/docs/connections/spec/track/) does. An example call would look like:
-
-```
-analytics.track('Order Received', {
- cost: "$120.00",
- account_id: '12345678',
- user_id: 'john.doe@company.com'
-});
-```
-
-Track calls will be sent to CustomerSuccessBox as a `track` event.
-
-
-## Group
-
-Send **account_id** in traits of a group call to set and update the traits of a unique Account.
-
-To learn more about account traits that are supported (including custom traits), check **Account traits** section from [here](https://support.customersuccessbox.com/article/77-customersuccessbox-destination-on-segment-com){:target="_blank”}.
-
-If you're not familiar with the Segment Specs, take a look to understand what the [Group method](/docs/connections/spec/group/) does. An example call would look like:
-
-```
-analytics.group('accountId123', {
- account_id: '12345678',
- name: "ABC Group"
-});
-```
-
-Group calls will be sent to CustomerSuccessBox as an `account`event.
-
-## Page
-
-Send **account_id** and **user_id** in properties of a page call to attribute the pageview to a unique user belonging to a unique Account. .
-
-If you're not familiar with the Segment Specs, take a look to understand what the [Page method](/docs/connections/spec/page/) does. An example call would look like:
-
-```
-analytics.page('orders', {
-title: "My Orders",
-...
-account_id: '12345678', //CustomerSuccessBox Account identifier
-user_id: 'john.doe@company.com' //CustomerSuccessBox User identifier
-});
-```
-
-Page calls will be sent to CustomerSuccessBox as an `page` event.
-
----
diff --git a/src/connections/destinations/catalog/cxense/index.md b/src/connections/destinations/catalog/cxense/index.md
index 090f66856c..205f18fdaf 100644
--- a/src/connections/destinations/catalog/cxense/index.md
+++ b/src/connections/destinations/catalog/cxense/index.md
@@ -7,7 +7,7 @@ hidden: true
-Currently this destination supports events originating from Web sources (not Server or Mobile). You can read more about how define a source [here](/docs/connections/sources/#what-is-a-source).
+Currently this destination supports events originating from Web sources (not Server or Mobile). You can read more about how define a source in Segment's [What is a Source](/docs/connections/sources/#what-is-a-source) documentation.
To get started with Cxense and Segment, you'll need the following:
diff --git a/src/connections/destinations/catalog/datarangers/index.md b/src/connections/destinations/catalog/datarangers/index.md
index 0c20e15f8f..589b5fc2c5 100644
--- a/src/connections/destinations/catalog/datarangers/index.md
+++ b/src/connections/destinations/catalog/datarangers/index.md
@@ -1,7 +1,6 @@
---
rewrite: true
title: BytePlus
-beta: true
---
BytePlus provides product analytics for mobile and web applications, including event/retention/funnel/error analysis, user segmentation, user paths, behavior lookup, A/B testing, and other functions.
diff --git a/src/connections/destinations/catalog/delivrai-resolve/index.md b/src/connections/destinations/catalog/delivrai-resolve/index.md
index f16df94cb6..2c926dcfd4 100644
--- a/src/connections/destinations/catalog/delivrai-resolve/index.md
+++ b/src/connections/destinations/catalog/delivrai-resolve/index.md
@@ -1,7 +1,6 @@
---
title: Delivr.ai Resolve (Browser) Destination
id: 650c69e7f47d84b86c120b4c
-beta: true
redirect_from:
- '/connections/destinations/catalog/actions-cdpresolution/'
---
diff --git a/src/connections/destinations/catalog/display-and-video-360-actions/index.md b/src/connections/destinations/catalog/display-and-video-360-actions/index.md
index 3184ed9293..3f8b0e730f 100644
--- a/src/connections/destinations/catalog/display-and-video-360-actions/index.md
+++ b/src/connections/destinations/catalog/display-and-video-360-actions/index.md
@@ -3,5 +3,4 @@ title: 'Display and Video 360 (Actions) Destination'
hidden: true
id: 65302a3acb309a8a3d5593f2
published: false
-beta: true
---
diff --git a/src/connections/destinations/catalog/doubleclick-floodlight/index.md b/src/connections/destinations/catalog/doubleclick-floodlight/index.md
index b0277bcf01..f8669d8c5b 100644
--- a/src/connections/destinations/catalog/doubleclick-floodlight/index.md
+++ b/src/connections/destinations/catalog/doubleclick-floodlight/index.md
@@ -54,7 +54,7 @@ https://ad.doubleclick.net/ddm/activity/src=1234567;cat=fghij456;type=abcde123;d
### Accessing Other Event Properties
-By default, the Segment event property you define for each custom variable mapping is matched against the property values found in the `properties` object of a `track` event. On device-mode web, you can use JSON style dot-notation-accessors wrapped in double curly brackets to map to other fields in the event's raw payload to your custom variables. For example, some acceptable values could be `{%raw%}{{userId}}{%endraw%}`, `{%raw%}{{anonymousId}}{%endraw%}`, or `{%raw%}{{context.page.referrer}}{%endraw%}`. You can find the complete structure of a standard Segment event payload [here](/docs/connections/spec/common/#structure). Please note that some fields may not be available for mapping, such as fields within the `context.campaign` object.
+By default, the Segment event property you define for each custom variable mapping is matched against the property values found in the `properties` object of a `track` event. On device-mode web, you can use JSON style dot-notation-accessors wrapped in double curly brackets to map to other fields in the event's raw payload to your custom variables. For example, some acceptable values could be `{%raw%}{{userId}}{%endraw%}`, `{%raw%}{{anonymousId}}{%endraw%}`, or `{%raw%}{{context.page.referrer}}{%endraw%}`. You can find the complete structure of a standard Segment event payload in Segment's [Spec: Common](/docs/connections/spec/common/#structure) docs. Please note that some fields may not be available for mapping, such as fields within the `context.campaign` object.
> info ""
> `dc_rdid` and `dc_lat` are automatically collected by Segment's mobile libraries and `ord` is uniquely generated for each event.
diff --git a/src/connections/destinations/catalog/events-win/index.md b/src/connections/destinations/catalog/events-win/index.md
index f62b1a5aa3..99e3106214 100644
--- a/src/connections/destinations/catalog/events-win/index.md
+++ b/src/connections/destinations/catalog/events-win/index.md
@@ -1,6 +1,5 @@
---
title: events.win Destination
-beta: true
id: 662d3328d029f89724a0c294
---
diff --git a/src/connections/destinations/catalog/extole-platform/index.md b/src/connections/destinations/catalog/extole-platform/index.md
index 4670bdf38c..ae882dfb05 100644
--- a/src/connections/destinations/catalog/extole-platform/index.md
+++ b/src/connections/destinations/catalog/extole-platform/index.md
@@ -1,7 +1,6 @@
---
title: Extole Destination
rewrite: true
-beta: true
redirect_from: '/connections/destinations/catalog/extole/'
id: 5e79ef31929aef3bdfbc53a5
---
diff --git a/src/connections/destinations/catalog/facebook-conversions-api/index.md b/src/connections/destinations/catalog/facebook-conversions-api/index.md
index 53786e5115..5c698d4f29 100644
--- a/src/connections/destinations/catalog/facebook-conversions-api/index.md
+++ b/src/connections/destinations/catalog/facebook-conversions-api/index.md
@@ -1,7 +1,6 @@
---
title: 'Facebook Conversions API Destination'
hidden: true
-beta: true
id: 5c7f23427d1806000175952a
---
diff --git a/src/connections/destinations/catalog/startdeliver-v2/index.md b/src/connections/destinations/catalog/startdeliver-v2/index.md
index c2d6421348..8c6e590b76 100644
--- a/src/connections/destinations/catalog/startdeliver-v2/index.md
+++ b/src/connections/destinations/catalog/startdeliver-v2/index.md
@@ -1,7 +1,6 @@
---
title: Startdeliver-v2 Destination
id: 65ccc6147108efc0cf5c6fe1
-beta: true
---
[Startdeliver](https://startdeliver.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank”} connects data from a variety of sources to provide a customer view optimized to Customer Success Managers.
diff --git a/src/connections/destinations/catalog/startdeliver/index.md b/src/connections/destinations/catalog/startdeliver/index.md
index 08d0858be8..b9c05f5563 100644
--- a/src/connections/destinations/catalog/startdeliver/index.md
+++ b/src/connections/destinations/catalog/startdeliver/index.md
@@ -17,7 +17,7 @@ Startdeliver maintains this destination. For any issues with the destination, [c
3. Choose which Source should send data to the "Startdeliver" destination.
4. Go to the [API keys](https://app.startdeliver.com/settings/apikeys){:target="_blank"} in your Startdeliver dashboard, generate an API key, make it active and grant it "Admin" permissions.
5. Enter the "API Key" in the "Startdeliver" destination settings in Segment.
-6. Create a User custom field you want to match a Segment event on [here](https://app.startdeliver.com/settings/fields){:target="_blank"}. You will need a field's alias at the next step.
+6. Create a User custom field you want to match a Segment event on [in the Startdeliver app](https://app.startdeliver.com/settings/fields){:target="_blank"}. You will need a field's alias at the next step.
7. Enter the "Startdeliver user custom field to match on" in the "Startdeliver" destination settings in Segment.
diff --git a/src/connections/destinations/catalog/swrve/index.md b/src/connections/destinations/catalog/swrve/index.md
index f2fec22107..c49c49f7dd 100644
--- a/src/connections/destinations/catalog/swrve/index.md
+++ b/src/connections/destinations/catalog/swrve/index.md
@@ -1,5 +1,4 @@
---
-beta: true
title: Swrve Destination
id: 59c467ba9e26eb0001380743
---
@@ -56,7 +55,7 @@ Swrve supports the `identify`, `track` and `screen` methods.
### Integrating Push & A/B Testing
-Follow Swrve's push notification documentation [here](https://docs.swrve.com/developer-documentation/integration/android){:target="_blank"}.
+Follow [Swrve's push notification documentation](https://docs.swrve.com/developer-documentation/integration/android){:target="_blank"}.
### Integrating In-app Messaging & Conversations
@@ -106,7 +105,7 @@ No further action is required to integrate in-app messages or Conversations, whi
### Integrating Push & A/B Testing
-Follow Swrve's push notification documentation [here](https://docs.swrve.com/developer-documentation/integration/ios){:target="_blank"}.
+Follow [Swrve's push notification documentation](https://docs.swrve.com/developer-documentation/integration/ios){:target="_blank"}.
### Integrating In-app Messaging & Conversations
diff --git a/src/connections/destinations/catalog/tealium-audience-stream/index.md b/src/connections/destinations/catalog/tealium-audience-stream/index.md
index 03ed106af9..2590a70e5a 100644
--- a/src/connections/destinations/catalog/tealium-audience-stream/index.md
+++ b/src/connections/destinations/catalog/tealium-audience-stream/index.md
@@ -1,5 +1,4 @@
---
-beta: true
hidden: true
title: Tealium AudienceStream Destination
---
diff --git a/src/connections/destinations/catalog/tractionboard/index.md b/src/connections/destinations/catalog/tractionboard/index.md
index 4638b2ea7c..6627b6bbdc 100644
--- a/src/connections/destinations/catalog/tractionboard/index.md
+++ b/src/connections/destinations/catalog/tractionboard/index.md
@@ -1,5 +1,4 @@
---
-beta: true
title: Tractionboard Destination
id: 569007b3e954a874ca44cd4e
---
diff --git a/src/connections/destinations/catalog/upollo/index.md b/src/connections/destinations/catalog/upollo/index.md
index 51c136a9ad..a61528104a 100644
--- a/src/connections/destinations/catalog/upollo/index.md
+++ b/src/connections/destinations/catalog/upollo/index.md
@@ -1,7 +1,6 @@
---
title: Upollo Destination
id: 62fc4ed94dd68d0d189dc9b2
-beta: true
---
[Upollo](https://upollo.ai?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank"} gives unique and actionable insights that lead to conversion, retention, and expansion.
diff --git a/src/connections/destinations/catalog/user-com/index.md b/src/connections/destinations/catalog/user-com/index.md
index a6b9ed77eb..f5571cedd3 100644
--- a/src/connections/destinations/catalog/user-com/index.md
+++ b/src/connections/destinations/catalog/user-com/index.md
@@ -1,6 +1,5 @@
---
title: 'User.com Destination'
-beta: true
redirect_from: '/connections/destinations/catalog/userengage/'
id: 59c93d8a3c0414000129bcb5
---
diff --git a/src/connections/destinations/catalog/user_guiding/index.md b/src/connections/destinations/catalog/user_guiding/index.md
index d8b22d510c..5eb6d05ac9 100644
--- a/src/connections/destinations/catalog/user_guiding/index.md
+++ b/src/connections/destinations/catalog/user_guiding/index.md
@@ -1,7 +1,6 @@
---
title: UserGuiding Destination
id: 6549f3d6f2f494b41bf941f8
-beta: true
---
[UserGuiding](https://userguiding.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank”} is a product adoption platform that helps product teams automate in-app experiences that turn new users into champions.
diff --git a/src/connections/destinations/catalog/userlike/index.md b/src/connections/destinations/catalog/userlike/index.md
index c493d33326..c3fdffc718 100644
--- a/src/connections/destinations/catalog/userlike/index.md
+++ b/src/connections/destinations/catalog/userlike/index.md
@@ -5,7 +5,7 @@ hidden: true
private: true
---
-[Userlike](https://www.userlike.com/en/){:target="_blank"} is B2C live chat software optimized for website and messenger support - it enables real-time analysis, so you can see web visitors and actions taken. Our Userlike destination code is open source and is viewable [here](https://github.com/segment-integrations/analytics.js-integration-userlike){:target="_blank"}.
+[Userlike](https://www.userlike.com/en/){:target="_blank"} is B2C live chat software optimized for website and messenger support - it enables real-time analysis, so you can see web visitors and actions taken. Segment's Userlike destination code is open source and is viewable in the [@segment-integrations/analytics.js-integration-userlike](https://github.com/segment-integrations/analytics.js-integration-userlike){:target="_blank"} GitHub repository.
## Getting Started
diff --git a/src/connections/destinations/catalog/vwo-cloud-mode-actions/index.md b/src/connections/destinations/catalog/vwo-cloud-mode-actions/index.md
index 1f6d03eeae..f8a9ae7414 100644
--- a/src/connections/destinations/catalog/vwo-cloud-mode-actions/index.md
+++ b/src/connections/destinations/catalog/vwo-cloud-mode-actions/index.md
@@ -3,5 +3,4 @@ title: 'VWO Cloud Mode (Actions) Destination'
hidden: true
id: 63bedc136a8484a53739e013
published: false
-beta: true
---
diff --git a/src/connections/destinations/catalog/vwo-web-mode-actions/index.md b/src/connections/destinations/catalog/vwo-web-mode-actions/index.md
index cf3814a527..3f82e98eb0 100644
--- a/src/connections/destinations/catalog/vwo-web-mode-actions/index.md
+++ b/src/connections/destinations/catalog/vwo-web-mode-actions/index.md
@@ -3,5 +3,4 @@ title: 'VWO Web Mode (Actions) Destination'
hidden: true
id: 637c192eba61b944e08ee158
published: false
-beta: true
---
diff --git a/src/connections/destinations/catalog/webengage/index.md b/src/connections/destinations/catalog/webengage/index.md
index f113f34a7c..5ef4eac50f 100644
--- a/src/connections/destinations/catalog/webengage/index.md
+++ b/src/connections/destinations/catalog/webengage/index.md
@@ -8,7 +8,7 @@ This integration is maintained by [WebEngage Support](mailto:support@webengage.c
Steps to integrate Segment with WebEngage:
-You will be required to provide the API key if you intend on sending any using WebEngage's server-side component. The API key can be found in your WebEngage dashboard on the top right under **Integrations > REST API**. If you don't have a WebEngage account, you can create one [here](https://webengage.com/sign-up){:target="_blank"}.
+You will be required to provide the API key if you intend on sending any using WebEngage's server-side component. The API key can be found in your WebEngage dashboard on the top right under **Integrations > REST API**. If you don't have a WebEngage account, you can create one [on the WebEngage site](https://webengage.com/sign-up){:target="_blank"}.
To use the client-side web or mobile bundled SDKs, enter your License Code. WebEngage only needs the License Code you want to enable the device/packaged Integration which will allow you to use WebEngage's in-app and push notification functionality.
diff --git a/src/connections/destinations/catalog/webhooks-actions/index.md b/src/connections/destinations/catalog/webhooks-actions/index.md
index cf7589c484..c724463234 100644
--- a/src/connections/destinations/catalog/webhooks-actions/index.md
+++ b/src/connections/destinations/catalog/webhooks-actions/index.md
@@ -3,5 +3,4 @@ title: 'Webhooks (Actions) Destination'
hidden: true
id: 614a3c7d791c91c41bae7599
published: false
-beta: true
---
diff --git a/src/connections/destinations/catalog/wigzo/index.md b/src/connections/destinations/catalog/wigzo/index.md
index 975f14eec5..e6d5d92bd9 100644
--- a/src/connections/destinations/catalog/wigzo/index.md
+++ b/src/connections/destinations/catalog/wigzo/index.md
@@ -10,7 +10,7 @@ This destination is maintained by Wigzo. For any issues with the destination, [c
## Getting Started
-The first step is to make sure Wigzo supports the source type and connection mode you've chosen to implement. You can learn more about what dictates the connection modes we support [here](/docs/connections/destinations/#connection-modes).
+The first step is to make sure Wigzo supports the source type and connection mode you've chosen to implement. You can learn more about what dictates the connection modes Segment supports [in the Destination Overview docs](/docs/connections/destinations/#connection-modes).
1. From the Segment web app, click **Catalog**.
2. Search for "Wigzo" in the Catalog, select it, and choose which of your sources to connect the destination to.
diff --git a/src/connections/destinations/catalog/wishpond/index.md b/src/connections/destinations/catalog/wishpond/index.md
index 35aff96deb..4b1bc160a5 100644
--- a/src/connections/destinations/catalog/wishpond/index.md
+++ b/src/connections/destinations/catalog/wishpond/index.md
@@ -1,5 +1,4 @@
---
-beta: true
title: Wishpond Destination
id: 575f018380412f644ff139bf
---
diff --git a/src/connections/destinations/catalog/zapier/index.md b/src/connections/destinations/catalog/zapier/index.md
index 17da7db3bb..7d52791a0b 100644
--- a/src/connections/destinations/catalog/zapier/index.md
+++ b/src/connections/destinations/catalog/zapier/index.md
@@ -1,6 +1,5 @@
---
rewrite: true
-beta: true
title: Zapier Destination
id: 57c4996480412f644ff29f78
---
diff --git a/src/connections/destinations/catalog/zopim/index.md b/src/connections/destinations/catalog/zopim/index.md
index fc547fc78a..edd8bd189b 100644
--- a/src/connections/destinations/catalog/zopim/index.md
+++ b/src/connections/destinations/catalog/zopim/index.md
@@ -27,7 +27,7 @@ type="text/javascript";e.parentNode.insertBefore($,e)})(document,"script");
```
-If you are using the `Web Widget` (see example below), **you will need to contact Zendesk Support in order to get your Chat Account ID or you can follow the steps outlined [here](https://support.zendesk.com/hc/en-us/articles/360022366613-How-do-I-find-my-Chat-Account-Key-):**
+If you are using the `Web Widget` (see example below), **you will need to contact Zendesk Support in order to get your Chat Account ID or you can follow the steps outlined in Zendesk's [How do I find my Chat Account Key?](https://support.zendesk.com/hc/en-us/articles/360022366613-How-do-I-find-my-Chat-Account-Key-){:target="_blank”} docs:**
```js
diff --git a/src/connections/functions/environment.md b/src/connections/functions/environment.md
index 3eea9a7e36..4501b28cbb 100644
--- a/src/connections/functions/environment.md
+++ b/src/connections/functions/environment.md
@@ -113,7 +113,7 @@ Here are some Public API use case examples:
**Create or update versions**: Create or update a function to add a version record and save the source code.
-**Deploy a function**: Use the Public API to deploy a function. After you deploy, Segment marks the function version as `DEPLOYED`. Learn more about function version states [here](#latest-and-deployed-versions).
+**Deploy a function**: Use the Public API to deploy a function. After you deploy, Segment marks the function version as `DEPLOYED`. Learn more about function version states in the [Latest and deployed versions](#latest-and-deployed-versions) section.
View Segment's [Public API](https://docs.segmentapis.com/tag/Functions){:target="_blank"} docs for more information on how to use Functions Versioning with the Public API.
diff --git a/src/connections/reverse-etl/faq.md b/src/connections/reverse-etl/faq.md
new file mode 100644
index 0000000000..55b433e44b
--- /dev/null
+++ b/src/connections/reverse-etl/faq.md
@@ -0,0 +1,25 @@
+---
+title: Reverse ETL FAQ
+beta: false
+---
+
+Get answers to some frequently asked Reverse ETL questions.
+
+## Why do my sync results show *No records extracted* when I select *Updated records* after I enable the mapping?
+It's expected that when you select **Updated records**, the records do not change after the first sync. During the first sync, the reverse ETL system calculates a snapshot of all the results and creates records in the `_segment_reverse_etl` schema. All the records are considered as *Added records* instead of *Updated records* at this time. The records can only meet the *Updated records* condition when the underlying values change after the first sync completes.
+
+## Can I be notified when Reverse ETL syncs fail?
+Yes, you can sign up for Reverse ETL sync notifications.
+
+To receive Reverse ETL sync notifications:
+1. Navigate to **Settings > User Preferences**.
+2. Select **Reverse ETL** in the **Activity Notifications** section.
+3. Enable the toggle for **Reverse ETL Sync Failed**.
+
+In case of consecutive failures, Segment sends notifications for every sync failure. Segment doesn't send notifications for partial failures.
+
+## Does Segment use Transport Layer Security (TLS) for the connection between Snowflake and Segment?
+Segment uses the [gosnowflake library](https://pkg.go.dev/github.com/snowflakedb/gosnowflake#pkg-variables){:target="_blank"} to connect with Snowflake, which internally uses TLS for the HTTP transport.
+
+## Can I have multiple queries in the Query Builder?
+No. In Reverse ETL, Segment executes queries in a [common table expression](https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#with_clause){:target="_blank”}, which can only bind the results from **one single** subquery. If there are multiple semicolons `;` in the query, they'll be treated as several subqueries (even if the second part is only an inline comment) and cause syntax errors.
diff --git a/src/connections/reverse-etl/index.md b/src/connections/reverse-etl/index.md
index a747f3c7a3..3088c38153 100644
--- a/src/connections/reverse-etl/index.md
+++ b/src/connections/reverse-etl/index.md
@@ -1,383 +1,84 @@
---
title: Reverse ETL
beta: false
+hide_toc: true
redirect_from:
- '/reverse-etl/'
---
-Reverse ETL (Extract, Transform, Load) extracts data from a data warehouse using a query you provide, and syncs the data to your 3rd party destinations. For example, with Reverse ETL, you can sync records from Snowflake to Mixpanel. Reverse ETL supports event and object data. This includes customer profile data, subscriptions, product tables, shopping cart tables, and more.
+Reverse ETL (Extract, Transform, Load) extracts data from a data warehouse using a query you provide and syncs the data to your third party destinations.
-> info ""
-> Reverse ETL is available to customers on Free, Team, and Business Tier plans. If you're on a Legacy plan, contact your Segment account executive to learn how you can access Reverse ETL.
-
-## Example use cases
Use Reverse ETL when you want to:
-* Sync audiences and other data built in the warehouse to Braze, Hubspot, or Salesforce Marketing Cloud for personalized marketing campaigns.
-* Sync enriched data to Mixpanel for a more complete view of the customer, or enrich Segment Unify with data from the warehouse.
-* Send data in the warehouse back into Segment as events that can be activated in all supported destinations, including Twilio Engage and other platforms.
-* Pass offline or enriched data to conversion APIs like Facebook, Google Ads, TikTok, or Snapchat.
-* Connect Google Sheets to a view in the warehouse for other business teams to have access to up-to-date reports.
-
-## Getting started
-There are four components to Reverse ETL: Sources, Models, Destinations, and Mappings.
-
-
-
-Follow these 4 steps to set up Reverse ETL and learn what each component is about:
-1. [Add a source](#step-1-add-a-source)
-2. [Add a model](#step-2-add-a-model)
-3. [Add a destination](#step-3-add-a-destination)
-4. [Create mappings](#step-4-create-mappings)
-
-> info "Enforce consent preferences stored in your warehouse with Consent Management"
-> Use Consent Management to enforce your end users' consent preferences across your downstream Reverse ETL supported destinations. See the [Consent in Reverse ETL documentation](/docs/privacy/consent-management/consent-in-retl/) for more information.
-
-
-### Step 1: Add a source
-A source is where your data originates from. Traditionally in Segment, a [source](/docs/connections/sources/#what-is-a-source) is a website, server library, mobile SDK, or cloud application which can send data into Segment. In Reverse ETL, your data warehouse is the source.
-
-To add your warehouse as a source:
-
-> warning ""
-> You need to be a user that has both read and write access to the warehouse.
-
-1. Navigate to **Connections > Sources** and select the **Reverse ETL** tab in the Segment app.
-2. Click **+ Add Reverse ETL source**.
-3. Select the source you want to add.
-4. Follow the corresponding setup guide 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/)
- * [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/)
-5. Add the account information for your source.
- * For Snowflake users: Learn more about the Snowflake Account ID [here](https://docs.snowflake.com/en/user-guide/admin-account-identifier.html){:target="_blank"}.
-5. Click **Test Connection** to test to see if the connection works.
-6. Click **Add source** if the test connection is successful.
-
-After you add your data warehouse as a source, you can [add a model](#step-2-add-a-model) to your source.
-
-### Step 2: Add a model
-Models are SQL queries that define sets of data you want to synchronize to your Reverse ETL destinations. After you add your source, you can add a model.
-
-To add your first model:
-1. Navigate to **Connections > Sources** and select the **Reverse ETL** tab. Select your source and click **Add Model**.
-2. Click **SQL Editor** as your modeling method. (Segment will add more modeling methods in the future.)
-3. Enter the SQL query that’ll define your model. Your model is used to map data to your Reverse ETL destinations.
-4. Choose a column to use as the unique identifier for each record in the **Unique Identifier column** field.
- * The Unique Identifier should be a column with unique values per record to ensure checkpointing works as expected. It can potentially be a primary key. This column is used to detect new, updated, and deleted records.
-5. Click **Preview** to see a preview of the results of your SQL query. The data from the preview is extracted from the first 10 records of your warehouse.
- * Segment caches preview queries and result sets in the UI, and stores the preview cache at the source level. If you make two queries for the same source, Segment returns identical preview results. However, during the next synchronization, the latest data will be sent to the connected destinations.
-6. Click **Next**.
-7. Enter your **Model Name**.
-8. Click **Create Model**.
-
-To add multiple models to your source, repeat steps 1-8 above.
-
-### Step 3: Add a destination
-Once you’ve added a model, you need to add a destination. In Reverse ETL, destinations are the business tools or apps you use that Segment syncs the data from your warehouse to.
-
-If your destination is not listed in [the Reverse ETL catalog](/docs/connections/reverse-etl/reverse-etl-catalog/), use the [Segment Connections Destination](#segment-connections-destination) to send data from your Reverse ETL warehouse to your destination.
-
-> info ""
-> Depending on the destination, you may need to know certain endpoints and have specific credentials to configure the destination.
-
-To add your first destination:
-1. Navigate to **Connections > Destinations** and select the **Reverse ETL** tab.
-2. Click **Add Reverse ETL destination**.
-3. Select the destination you want to connect to and click **Configure**.
-4. Select the Reverse ETL source you want to connect the destination to.
-5. Enter the **Destination name** and click **Create Destination**.
-6. Enter the required information on the **Settings** tab of the destination.
-7. Navigate to the destination settings tab and enable the destination. If the destination is disabled, then Segment won't be able to start sync.
-
-### Step 4: Create mappings
-After you’ve added a destination, you can create mappings from your warehouse to the destination. Mappings enable you to map the data you extract from your warehouse to the fields in your destination.
-
-To create a mapping:
-1. Navigate to **Connections > Destinations** and select the **Reverse ETL** tab.
-2. Select the destination that you want to create a mapping for.
-3. Click **Add Mapping**.
-4. Select the model to sync from.
-5. Select the **Action** you want to sync and click **Next**.
- * Actions determine the information sent to the destination. The list of Actions will be unique to each destination.
-6. Add the mapping's name. The initial name will default to the Action's name (e.g. 'Track Event') but is completely customizable. It will allow you to identify the mapping amongst others.
-7. In the **Select record to map and send** section, select which records to send to your destination after Segment completes extracting data based on your model. You can choose from:
- * Added records
- * Updated records
- * Added or updated records
- * Deleted records
-8. Select a test record to preview the fields that you can map to your destination in the **Add test record** field.
-9. Select the Schedule type for the times you want the model’s data to be extracted from your warehouse. You can choose from:
- * **Interval**: Extractions perform based on a selected time cycle.
- * **Day and time**: Extractions perform at specific times on selected days of the week.
-10. Select how often you want the schedule to sync in **Schedule configuration**.
- * For an **Interval** schedule type, you can choose from: 15 minutes, 30 minutes, 1 hour, 2 hours, 4 hours, 6 hours, 8 hours, 12 hours, 1 day.
- * 15 minutes is considered real-time for warehouse syncs
- * For a **Day and time** schedule type, you can choose the day(s) you’d like the schedule to sync as well as the time.
- * You can only choose to start the extraction at the top of the hour.
- * Scheduling multiple extractions to start at the same time inside the same data warehouse causes extraction errors.
-11. Define how to map the record columns from your model to your destination in the **Select Mappings** section.
- * You map the fields that come from your source, to fields that the destination expects to find. Fields on the destination side depend on the type of action selected.
- * If you're setting up a destination action, depending on the destination, some mapping fields may require data to be in the form of an object or array. See the [supported objects and arrays for mapping](#supported-object-and-arrays).
-12. *(Optional)* Send a test record to verify the mappings correctly send to your destination.
-13. Click **Create Mapping**.
-14. Select the destination you’d like to enable on the **My Destinations** page under **Reverse ETL > Destinations**.
-15. Turn the toggle on for the **Mapping Status**. Events that match the trigger condition in the mapping will be sent to the destination.
- * If you disable the mapping state to the destination, events that match the trigger condition in the mapping won’t be sent to the destination.
-
-To add multiple mappings from your warehouse to your destination, repeat steps 1-13 above.
-
-## Using Reverse ETL
-After you've followed [all four steps](/docs/connections/reverse-etl/#getting-started) and set up your source, model, destination, and mappings for Reverse ETL, your data will extract and sync to your destination(s) right away if you chose an interval schedule. If you set your data to extract at a specific day and time, the extraction will take place then.
-
-### Managing syncs
-
-#### Sync overview
-On the Reverse ETL sync overview tab for your destination, you can see information about your recent Reverse ETL syncs at a glance, search for recent syncs, and quickly access the mappings and models that power Reverse ETL.
-
-
-
-You can view the following information about each sync:
-- **Latest sync**: The progress of your latest sync: syncs can either be **In progress**, **Successful**, or **Failed**. Also included is the timestamp of the sync start time.
-- **Mapping**: The named mapping that powered the sync and a hyperlink to the mapping's overview page.
-- **Model**: The name that you gave the SQL query used to withdraw information from your warehouse, with a hyperlink to the model overview page. Below the model name, you can see the warehouse source that Segment extracts information from.
-- **Action**: The Action that your destination uses to map information from your warehouse to your downstream destination.
-- **Mapping status**: The status of your mapping: either **Enabled** or **Disabled**.
-
-You can also filter the sync overview table to return only the syncs that match your criteria.
-
-You can filter for the following sync attributes:
-- **Sync status**: The status of your sync: In progress, Successful, Partially successful, or Failed.
-- **Start time**: Select a predefined time period, or create a custom date range.
-- **Model**: The model connected to your sync.
-- **Destination**: Select one or more of your connected destinations.
-- **Mapping status**: The status of your mapping: either **Enabled** or **Disabled**.
-
-#### Sync history and observability
-Check the status of your data extractions and see details of your syncs. Click into failed records to view additional details on the error, sample payloads to help you debug the issue, and recommended actions.
-
-To check the status of your extractions:
-1. Navigate to **Connections > Destinations** and select the **Reverse ETL** tab.
-2. Select the destination you want to view.
-3. Select the mapping you want to view.
-4. Click the sync you want to view to get details of the sync. You can view:
- * The status of the sync.
- * Details of how long it took for the sync to complete.
- * How many total records were extracted, as well as a breakdown of the number of records added, updated, and deleted.
- * 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.
-
-#### Reset syncs
-You can reset your syncs so that your data is synced from the beginning. This means that Segment resyncs your entire dataset for the model.
-
-To reset a sync:
-1. Select the three dots next to **Sync now**.
-2. Select **Reset sync**.
-3. Select the checkbox that you understand what happens when a sync is reset.
-4. Click **Reset sync**.
-
-#### Replays
-You can choose to replay syncs. To replay a specific sync, contact [friends@segment.com](mailto:friends@segment.com). Keep in mind that triggering a replay resyncs all records for a given sync.
-
-#### Alerting
-You can opt in to receive email, Slack, and in-app alerts about Reverse ETL sync failures and partial successes.
-
-To subscribe to alerts:
-1. Navigate to **Settings > User Preferences**.
-2. Select **Reverse ETL** in the **Activity Notifications** section.
-3. Click the Reverse ETL sync status that you'd like to receive notifications for. You can select one or more of the following sync statuses:
- - **Reverse ETL sync failed**: Receive a notification when your Reverse ETL sync fails.
- - **Reverse ETL sync partial success**: Receive a notification when your Reverse ETL sync is partially successful.
-4. Select one or more of the following alert options:
- - **Enable email notifications**: Enter an email address or alias that should receive alerts.
- - **Enable Slack notifications**: Enter a Webhook URL and Slack channel name.
- - **Enable in-app notifications**: Select this option to see an in-app notification.
-5. Click **Create alert**.
-
-> info "View email addresses that are signed up to receive alerts"
-> If you opted to receive notifications by email, you can click **View active email addresses** to see the email addresses that are currently signed up to receive notifications.
-
-### Edit your model
-To edit your model:
-1. Navigate to **Connections > Destinations** and select the **Reverse ETL** tab.
-2. Select the source and the model you want to edit.
-3. On the overview tab, click **Edit** to edit your query.
-4. Click the **Settings** tab to edit the model name or change the schedule settings.
-
-### Edit your mapping
-
-To edit your mapping:
-1. Navigate to **Connections > Destinations** and select the **Reverse ETL** tab.
-2. Select the destination and the mapping you want to edit.
-3. Select the **...** three dots and click **Edit mapping**. If you want to delete your mapping, select **Delete**.
-
-## Reverse ETL for Engage Premier Subscriptions
-[Engage Premier Subscriptions users](/docs/engage/user-subscriptions/) can use Reverse ETL to sync subscription data from warehouses to destinations.
-
-To get started with using Reverse ETL for subscriptions:
-1. Navigate to **Engage > Audiences** and select the **Profile explorer** tab.
-2. Click **Manage subscription statuses** and select **Update subscription statuses**.
-3. Select **Sync with RETL** as the method to update your subscription statuses.
-4. Click **Configure**.
-5. In the Reverse ETL catalog, select the Reverse ETL source you want to use.
-6. Set up the source. Refer to the [add a source](#step-1-add-a-source) section for more details on how to set up the source.
-7. Add the **Segment Profiles** destination as your Reverse ETL destination. Refer to [add a destination](#step-3-add-a-destination) for more details to set up the destination.
-8. Once your destination is set, go to the **Mappings** tab of your destination and click **Add Mapping**.
-9. Select the model you want to use and then select **Send Subscriptions**.
-10. Click **Create Mapping**.
-11. Follow the steps in the [create mappings](#step-4-create-mappings) section to set your mappings.
-
-
-## Record diffing
-Reverse ETL computes the incremental changes to your data directly within your data warehouse. The Unique Identifier column is used to detect the data changes, such as new, updated, and deleted records.
-
-> info "Delete Records Payload"
-> The only value passed for deleted records is its unique ID which can be accessed as `__segment_id`.
-
-In order for Segment to compute the data changes within your warehouse, Segment needs to have both read and write permissions to the warehouse schema table. At a high level, the extract process requires read permissions for the query being executed. Segment keeps track of changes to the query results through tables that Segment manages in a dedicated schema (for example, `_segment_reverse_etl`), which requires some write permissions.
-
-> warning ""
-> There may be cost implications to having Segment query your warehouse tables.
-
-## Segment Connections destination
-If you don’t see your destination listed in the Reverse ETL catalog, use the [Segment Connections destination](/docs/connections/destinations/catalog/actions-segment/) to send data from your Reverse ETL warehouse to other destinations listed in the [catalog](/docs/connections/destinations/catalog/).
-
-The Segment Connections destination enables you to mold data extracted from your warehouse in [Segment Spec](/docs/connections/spec/) API calls that are then processed by [Segment’s HTTP Tracking API](/docs/connections/sources/catalog/libraries/server/http-api/). The requests hit Segment’s servers, and then Segment routes your data to any destination you want. Get started with the [Segment Connections destination](/docs/connections/destinations/catalog/actions-segment/).
-
-> warning ""
-> The Segment Connections destination sends data to Segment’s Tracking API, which has cost implications. New users count as new MTUs and each call counts as an API call. For information on how Segment calculates MTUs and API calls, please see [MTUs, Throughput and Billing](/docs/guides/usage-and-billing/mtus-and-throughput/).
-
-## Supported object and arrays
-
-When you set up destination actions in Reverse ETL, depending on the destination, some [mapping fields](#step-4-create-mappings) may require data to be in the form of an [object](#object-mapping) or [array](#array-mapping).
-
-### Object mapping
-You can send data to a mapping field that requires object data. An example of object mapping is an `Order completed` model with a `Products` column that’s in object format.
-
-Example:
-
- {
- "product": {
- "id": 0001,
- "color": "pink",
- "name": "tshirt",
- "revenue": 20,
- "inventory": 500
- }
- }
-
-To send data to a mapping field that requires object data, you can choose between these two options:
-
-Option | Details
------- | --------
-Customize object | This enables you to manually set up the mapping fields with any data from the model. If the model contains some object data, you can select properties within the object to set up the mappings as well.
-Select object | This enables you to send all nested properties within an object. The model needs to provide data in the format of the object.
-
-> success ""
-> Certain object mapping fields have a fixed list of properties they can accept. If the names of the nested properties in your object don't match with the destination properties, the data won't send. Segment recommends you to use **Customize Object** to ensure your mapping is successful.
-
-
-### Array mapping
-To send data to a mapping field that requires array data, the model must provide data in the format of an array of objects. An example is an `Order completed` model with a `Product purchased` column that’s in an array format.
-
-Example:
-
-
- [
- {
- "currency": "USD",
- "price": 40,
- "productName": "jacket",
- "purchaseTime": "2021-12-17 23:43:47.102",
- "quantity": 1
- },
- {
- "currency": "USD",
- "price": 5,
- "productName": "socks",
- "quantity": 2
- }
- ]
-
-
-To send data to a mapping field that requires array data, you can choose between these two options:
-
-Option | Details
------- | --------
-Customize array | This enables you to select the specific nested properties to send to the destination.
-Select array | This enables you to send all nested properties within the array.
-
-> success ""
-> Certain array mapping fields have a fixed list of properties they can accept. If the names of the nested properties in your array don't match the destination properties, the data won't send. Segment recommends you to use the **Customize array** option to ensure your mapping is successful.
-
-Objects in an array don't need to have the same properties. If a user selects a missing property in the input object for a mapping field, the output object will miss the property.
-
-## Limits
-To provide consistent performance and reliability at scale, Segment enforces default use and rate limits for Reverse ETL.
-
-### Usage limits
-Reverse ETL usage limits are measured based on the number of records processed to each destination – this includes both successful and failed records. For example, if you processed 50k records to Braze and 50k records to Mixpanel, then your total Reverse ETL usage is 100k records.
-
-Processed records represents the number of records Segment attempts to send to each destination. Keep in mind that not all processed records are successfully delivered, for example, such as when the destination experiences an issue.
-
-Your plan determines how many Reverse ETL records you can process in one monthly billing cycle. When your limit is reached before the end of your billing period, your syncs will pause and then resume on your next billing cycle. To see how many records you’ve processed using Reverse ETL, navigate to **Settings > Usage & billing** and select the **Reverse ETL** tab.
-
-Plan | Number of Reverse ETL records you can process to destinations per month | How to increase your number of Reverse ETL records
----- | --------------------------------------------------------------------------- | ---------------------------------------------------
-Free | 500K | Upgrade to the Teams plan in the Segment app by navigating to **Settings > Usage & billing**.
-Teams | 1 million | Contact your sales representative to upgrade your plan to Business.
-Business | 50 x the number of [MTUs](/docs/guides/usage-and-billing/mtus-and-throughput/#what-is-an-mtu) or .25 x the number of monthly API calls | Contact your sales rep to upgrade your plan.
-
-If you have a non-standard or high volume usage plan, you may have unique Reverse ETL limits or custom pricing.
-
-### Configuration limits
-
-Name | Details | Limit
---------- | ------- | ------
-Model query length | The maximum length for the model SQL query. | 131,072 characters
-Model identifier column name length | The maximum length for the ID column name. | 191 characters
-Model timestamp column name length | The maximum length for the timestamp column name. | 191 characters
-Sync frequency | The shortest possible duration Segment allows between syncs. | 15 minutes
-
-### Extract limits
-The extract phase is the time spent connecting to your database, executing the model query, updating internal state tables and staging the extracted records for loading.
-
-Name | Details | Limit
------ | ------- | ------
-Record count | The maximum number of records a single sync will process. Note: This is the number of records extracted from the warehouse not the limit for the number of records loaded to the destination (for example, new/update/deleted). | 30 million records
-Column count | The maximum number of columns a single sync will process. | 512 columns
-Column name length | The maximum length of a record column. | 128 characters
-Record JSON size | The maximum size for a record when converted to JSON (some of this limit is used by Segment). | 512 KiB
-Column JSON size | The maximum size of any single column value. | 128 KiB
-
-## FAQs
-
-#### What warehouse data sources does Segment support?
-Segment supports the following sources:
-* [Azure](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/azure-setup/)
-* [BigQuery](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/bigquery-setup/)
-* [Databricks](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/databricks-setup/)
-* [Postgres](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/postgres-setup/)
-* [Redshift](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/redshift-setup/)
-* [Snowflake](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup/)
-
-#### Why do my sync results show *No records extracted* when I select *Updated records* after I enable the mapping?
-It's expected that when you select **Updated records** the records do not change after the first sync. During the first sync, the reverse ETL system calculates a snapshot of all the results and creates records in the `_segment_reverse_etl` schema. All the records are considered as *Added records* instead of *Updated records* at this time. The records can only meet the *Updated records* condition when the underlying values change after the first sync completes.
-
-#### Does Segment use Transport Layer Security (TLS) for the connection between Snowflake and Segment?
-Segment uses the [gosnowflake library](https://pkg.go.dev/github.com/snowflakedb/gosnowflake#pkg-variables){:target="_blank"} to connect with Snowflake, which internally uses TLS for the HTTP transport.
-
-#### Can I be notified when Reverse ETL syncs fail?
-Yes, you can sign up for Reverse ETL sync notifications.
-
-To receive Reverse ETL sync notifications:
-1. Navigate to **Settings > User Preferences**.
-2. Select **Reverse ETL** In the **Activity Notifications** section.
-3. Enable the toggle for **Reverse ETL Sync Failed**.
-
-In case of consecutive failures, Segment sends notifications for every sync failure. Segment doesn't send notifications for partial failures.
+* **Enable your marketing teams**: Sync audiences and other data built in the warehouse to Braze, Hubspot, or Salesforce Marketing Cloud for personalized marketing campaigns.
+* **Enrich your customer profiles**: Sync enriched data to Mixpanel for a more complete view of the customer, or enrich Segment Unify with data from your warehouse.
+* **Activate data in Twilio Engage**: Send data in the warehouse back into Segment as events that can be activated in all supported destinations, including Twilio Engage destinations.
+* **Strengthen your conversion events**: Pass offline or enriched data to conversion APIs like Facebook, Google Ads, TikTok, or Snapchat.
+* **Empower business teams**: Connect Google Sheets to a view in the warehouse to create up-to-date reports for other business teams.
+
+> info "Reverse ETL supports event and object data"
+> Event and object data includes customer profile data, subscriptions, product tables, shopping cart tables, and more.
+
+
+## Get started with Reverse ETL
+
+
+ {% include components/reference-button.html
+ href="/docs/connections/reverse-etl/setup"
+ icon="getting-started.svg"
+ title="Set up Reverse ETL"
+ description="Add a Reverse ETL source, set up a model, add a destination, and create mappings to transfer data from your warehouse to your downstream destinations."
+ %}
+
+ {% include components/reference-button.html
+ href="/docs/connections/reverse-etl/manage-retl"
+ icon="reverse-etl.svg"
+ title="Manage Reverse ETL Syncs"
+ description="View your sync history, gain insights into sync statuses, and restart or replay failed or partially successful syncs."
+ %}
+
+
+## Learn more
+
+Learn more about the system that powers Reverse ETL, supported destinations, and frequently asked questions.
+
+
+ {% include components/reference-button.html
+ href="/docs/connections/reverse-etl/system"
+ title="Reverse ETL System"
+ description="Reference material about system limits and how Segment detects data changes."
+ %}
+
+
+
+ {% include components/reference-button.html
+ href="/docs/connections/reverse-etl/reverse-etl-catalog"
+ title="Destination catalog"
+ description="View the 30+ destinations with native Reverse ETL support and learn how to send data to the rest of the Segment catalog using Segment Connections."
+ %}
+
+
+
+ {% include components/reference-button.html
+ href="/docs/connections/reverse-etl/faq"
+ title="Reverse ETL FAQ"
+ description="Frequently asked questions about Reverse ETL."
+ %}
+
+
+
+## More Reverse ETL resources
+
+{% include components/reference-button.html
+ icon="guides.svg"
+ href="https://segment.com/blog/reverse-etl/"
+ title="What is Reverse ETL? A complete guide"
+ description="In this blog from Segment, learn how Reverse ETL helps businesses activate their data to drive better decision-making and greater operational efficiency."
+%}
+
+{% include components/reference-button.html
+ icon="projects.svg"
+ href="https://segment.com/customers/mongodb/"
+ title="Customer story: MongoDB"
+ description="Learn how MongoDB used Reverse ETL to connect the work of analytics teams to downstream marketing and sales tools to deliver just-in-time communicates that increased customer satisfaction and engagement."
+%}
-#### Can I have multiple queries in the Query Builder?
-No. In Reverse ETL, Segment executes queries in a [common table expression](https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#with_clause){:target="_blank”}, which can only bind the results from **one single** subquery. If there are multiple semicolons `;` in the query, they'll be treated as several subqueries (even if the second part is only an inline comment) and cause syntax errors.
diff --git a/src/connections/reverse-etl/manage-retl.md b/src/connections/reverse-etl/manage-retl.md
new file mode 100644
index 0000000000..c449ac0c4d
--- /dev/null
+++ b/src/connections/reverse-etl/manage-retl.md
@@ -0,0 +1,141 @@
+---
+title: Manage Reverse ETL Syncs
+beta: false
+---
+
+View your sync history, gain insights into sync statuses, and restart or replay failed or partially successful syncs.
+
+## Sync overview
+On the Reverse ETL sync overview tab for your destination, you can see information about your recent Reverse ETL syncs at a glance, search for recent syncs, and quickly access the mappings and models that power Reverse ETL.
+
+
+
+You can view the following information about each sync:
+- **Latest sync**: The progress of your latest sync: syncs can either be **In progress**, **Successful**, or **Failed**. Also included is the timestamp of the sync start time.
+- **Mapping**: The named mapping that powered the sync and a hyperlink to the mapping's overview page.
+- **Model**: The name that you gave the SQL query used to withdraw information from your warehouse, with a hyperlink to the model overview page. Below the model name, you can see the warehouse source that Segment extracts information from.
+- **Action**: The Action that your destination uses to map information from your warehouse to your downstream destination.
+- **Mapping status**: The status of your mapping: either **Enabled** or **Disabled**.
+
+You can also filter the sync overview table to return only the syncs that match your criteria.
+
+You can filter for the following sync attributes:
+- **Sync status**: The status of your sync: In progress, Successful, Partially successful, or Failed.
+- **Start time**: Select a predefined time period, or create a custom date range.
+- **Model**: The model connected to your sync.
+- **Destination**: Select one or more of your connected destinations.
+- **Mapping status**: The status of your mapping: either **Enabled** or **Disabled**.
+
+## Sync history
+Check the status of your data extractions and see details of your syncs. Click into failed records to view additional details on the error, sample payloads to help you debug the issue, and recommended actions.
+
+To check the status of your extractions:
+1. Navigate to **Connections > Destinations** and select the **Reverse ETL** tab.
+2. Select the destination you want to view.
+3. Select the mapping you want to view.
+4. Click the sync you want to view to get details of the sync. You can view:
+ * The status of the sync.
+ * Details of how long it took for the sync to complete.
+ * How many total records were extracted, as well as a breakdown of the number of records added, updated, and deleted.
+ * 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.
+
+> info "Segment automatically retries events that were extracted but failed to load"
+> Segment retries events for 14 days following a total or partial sync failure. Before loading the failed records on a subsequent sync, Segment checks for the latest changes in your data to ensure the data loaded into your warehouse isn't stale. If the error causing the load failure is coming from an upstream tool, you can fix the error in the upstream tool to ensure the record loads on the next sync.
+
+## Reset syncs
+You can reset your syncs so that your data is synced from the beginning. This means that Segment resyncs your entire dataset for the model. During the next sync, all records extracted by the model are sent to your destination, not just the records that changed since the last sync.
+
+To reset a sync:
+1. Select the three dots next to **Sync now**.
+2. Select **Reset sync**.
+3. Click **I understand what happens when I reset a sync state**.
+4. Click **Reset sync**.
+
+## Replays
+You can choose to replay syncs. To replay a specific sync, contact [friends@segment.com](mailto:friends@segment.com). Keep in mind that triggering a replay resyncs all records for a given sync.
+
+## Alerting
+You can opt in to receive email, Slack, and in-app alerts about Reverse ETL sync failures and partial successes.
+
+To subscribe to alerts:
+1. Navigate to **Settings > User Preferences**.
+2. Select **Reverse ETL** in the **Activity Notifications** section.
+3. Click the Reverse ETL sync status that you'd like to receive notifications for. You can select one or more of the following sync statuses:
+ - **Reverse ETL sync failed**: Receive a notification when your Reverse ETL sync fails.
+ - **Reverse ETL sync partial success**: Receive a notification when your Reverse ETL sync is partially successful.
+4. Select one or more of the following alert options:
+ - **Enable email notifications**: Enter an email address or alias that should receive alerts.
+ - **Enable Slack notifications**: Enter a webhook URL and Slack channel name.
+ - **Enable in-app notifications**: Select this option to see an in-app notification.
+5. Click **Create alert**.
+
+> success ""
+> If you opted to receive notifications by email, you can click **View active email addresses** to see the email addresses that are currently signed up to receive notifications.
+
+## Supported object and arrays
+
+When you set up destination actions in Reverse ETL, depending on the destination, some [mapping fields](/docs/connections/reverse-etl/setup/#step-4-create-mappings) may require data as an [object](/docs/connections/reverse-etl/manage-retl/#object-mapping) or [array](/docs/connections/reverse-etl/manage-retl/#array-mapping).
+
+### Object mapping
+You can send data to a mapping field that requires object data. An example of object mapping is an `Order completed` model with a `Products` column that’s in object format.
+
+Example:
+
+```json
+ {
+ "product": {
+ "id": 0001,
+ "color": "pink",
+ "name": "tshirt",
+ "revenue": 20,
+ "inventory": 500
+ }
+ }
+```
+
+To send data to a mapping field that requires object data, you can choose between these two options:
+
+Option | Details
+------ | --------
+Customize object | This enables you to manually set up the mapping fields with any data from the model. If the model contains some object data, you can select properties within the object to set up the mappings as well.
+Select object | This enables you to send all nested properties within an object. The model needs to provide data in the format of the object.
+
+> success ""
+> Certain object mapping fields have a fixed list of properties they can accept. If the names of the nested properties in your object don't match with the destination properties, the data won't send. Segment recommends you to use **Customize Object** to ensure your mapping is successful.
+
+
+### Array mapping
+To send data to a mapping field that requires array data, the model must provide data in the format of an array of objects. An example is an `Order completed` model with a `Product purchased` column that’s in an array format.
+
+Example:
+
+```json
+ [
+ {
+ "currency": "USD",
+ "price": 40,
+ "productName": "jacket",
+ "purchaseTime": "2021-12-17 23:43:47.102",
+ "quantity": 1
+ },
+ {
+ "currency": "USD",
+ "price": 5,
+ "productName": "socks",
+ "quantity": 2
+ }
+ ]
+```
+
+To send data to a mapping field that requires array data, you can choose between these two options:
+
+Option | Details
+------ | --------
+Customize array | This enables you to select the specific nested properties to send to the destination.
+Select array | This enables you to send all nested properties within the array.
+
+> success ""
+> Certain array mapping fields have a fixed list of properties they can accept. If the names of the nested properties in your array don't match the destination properties, the data won't send. Segment recommends you to use the **Customize array** option to ensure your mapping is successful.
+
+Objects in an array don't need to have the same properties. If a user selects a missing property in the input object for a mapping field, the output object will miss the property.
\ No newline at end of file
diff --git a/src/connections/reverse-etl/reverse-etl-catalog.md b/src/connections/reverse-etl/reverse-etl-catalog.md
index 7ae9a2c428..0cde14d1e4 100644
--- a/src/connections/reverse-etl/reverse-etl-catalog.md
+++ b/src/connections/reverse-etl/reverse-etl-catalog.md
@@ -1,8 +1,14 @@
---
title: Reverse ETL Catalog
+beta: false
---
-These destinations support [Reverse ETL](/docs/connections/reverse-etl/). If you don’t see your destination listed in the Reverse ETL catalog, use the [Segment Connections destination](/docs/connections/destinations/catalog/actions-segment/) to send data from your Reverse ETL warehouse to other destinations listed in the [catalog](/docs/connections/destinations/catalog/).
+Reverse ETL supports the entire Segment destination catalog - 30+ Actions destinations are natively supported and all other destinations are supported through the [Segment Connections](#segment-connections-destination) destination.
+
+> success ""
+> Twilio Engage Premier Subscriptions users can use the [Segment Profiles](/docs/connections/destinations/catalog/actions-segment-profiles/) destination to enrich their warehouse data.
+
+The following destinations natively support [Reverse ETL](/docs/connections/reverse-etl/). If you don’t see your destination listed in the Reverse ETL catalog, use the [Segment Connections destination](/docs/connections/destinations/catalog/actions-segment/) to send data from your Reverse ETL warehouse to other destinations listed in the [catalog](/docs/connections/destinations/catalog/).
@@ -37,3 +43,26 @@ These destinations support [Reverse ETL](/docs/connections/reverse-etl/). If you
+## Segment Connections destination
+If you don’t see your destination listed in the Reverse ETL catalog, use the [Segment Connections destination](/docs/connections/destinations/catalog/actions-segment/) to send data from your Reverse ETL warehouse to other destinations listed in the [catalog](/docs/connections/destinations/catalog/).
+
+The Segment Connections destination enables you to mold data extracted from your warehouse in [Segment Spec](/docs/connections/spec/) API calls that are then processed by [Segment’s HTTP Tracking API](/docs/connections/sources/catalog/libraries/server/http-api/). The requests hit Segment’s servers, and then Segment routes your data to any destination you want. Get started with the [Segment Connections destination](/docs/connections/destinations/catalog/actions-segment/).
+
+> warning ""
+> The Segment Connections destination sends data to Segment’s Tracking API, which has cost implications. New users count as new MTUs and each call counts as an API call. For information on how Segment calculates MTUs and API calls, please see [MTUs, Throughput and Billing](/docs/guides/usage-and-billing/mtus-and-throughput/).
+
+## Send data to Engage with Segment Profiles
+Engage Premier Subscriptions users can use Reverse ETL to sync subscription data from warehouses to destinations.
+
+To get started with using Reverse ETL for subscriptions:
+1. Navigate to **Engage > Audiences** and select the **Profile explorer** tab.
+2. Click **Manage subscription statuses** and select **Update subscription statuses**.
+3. Select **Sync with RETL** as the method to update your subscription statuses.
+4. Click **Configure**.
+5. In the Reverse ETL catalog, select the Reverse ETL source you want to use.
+6. Set up the source. Refer to the [add a source](/docs/connections/reverse-etl/setup/#step-1-add-a-source) section for more details on how to set up the source.
+7. Add the Segment Profiles destination as your Reverse ETL destination. Refer to [add a destination](/docs/connections/reverse-etl/setup/#step-3-add-a-destination) for more details on how to set up the destination.
+8. Once your destination is set, go to the **Mappings** tab of your destination and click **Add Mapping**.
+9. Select the model you want to use and then select **Send Subscriptions**.
+10. Click **Create Mapping**.
+11. Follow the steps in the [Create Mappings](/docs/connections/reverse-etl/setup/#step-4-create-mappings) section to set your mappings.
diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/azure-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/azure-setup.md
index 73e4aceeb4..8f77dd075c 100644
--- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/azure-setup.md
+++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/azure-setup.md
@@ -61,7 +61,7 @@ To set up Azure as your Reverse ETL source:
5. Navigate to **Connections > Sources** and select the **Reverse ETL** tab.
6. Click **+ Add Reverse ETL source**.
7. Select **Azure** and click **Add Source**.
-8. Enter the configuration settings for you Azure source based on the information from Step 3.
+8. Enter the configuration settings for your Azure source based on the information from Step 3.
* Hostname:
* Use `xxxxxxx.sql.azuresynapse.net` if you’re connecting to a dedicated SQL pool in Synapse workspace.
* Use `xxxxxxx.database.windows.net` if you’re connecting to a dedicated SQL pool (formerly SQL DW)
@@ -72,5 +72,5 @@ To set up Azure as your Reverse ETL source:
9. Click **Test Connection** to see if the connection works. If the connection fails, make sure you have the right permissions and credentials, then try again.
10. Click **Add source** if the test connection is successful.
-After you've successfully added your Azure source, [add a model](/docs/connections/reverse-etl/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide.
+After you've successfully added your Azure source, [add a model](/docs/connections/reverse-etl/setup/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide.
diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/bigquery-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/bigquery-setup.md
index e557bf6740..03b876dba3 100644
--- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/bigquery-setup.md
+++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/bigquery-setup.md
@@ -28,7 +28,10 @@ To set up the Segment BigQuery connector:
20. Click **Test Connection** to test to see if the connection works. If the connection fails, make sure you have the right permissions and credentials and try again.
6. Click **Add source** if the test connection is successful.
-After you've added BigQuery as a source, you can [add a model](/docs/connections/reverse-etl#step-2-add-a-model).
+After you've added BigQuery as a source, you can [add a model](/docs/connections/reverse-etl/setup/#step-2-add-a-model).
+
+> info "BigQuery Reverse ETL sources support Segment's dbt extension"
+> If you have an existing dbt account with a Git repository, you can use [Segment's dbt extension](/docs/segment-app/extensions/dbt/) to centralize model management and versioning, reduce redundancies, and run CI checks to prevent breaking changes.
## Constructing your own role or policy
When you construct your own role or policy, Segment needs the following permissions:
@@ -48,3 +51,5 @@ Permission | Details
`bigquery.jobs.create` | This allows Segment to execute queries on any datasets or tables your model query references, and also allows Segment to manage tables used for tracking.
The `bigquery.datasets.*` permissions can be scoped only to the `__segment_reverse_etl` dataset.
+
+After you've successfully added your BigQuery source, [add a model](/docs/connections/reverse-etl/setup/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide.
\ No newline at end of file
diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/databricks-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/databricks-setup.md
index 58a927f49c..c47619e20a 100644
--- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/databricks-setup.md
+++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/databricks-setup.md
@@ -4,11 +4,10 @@ title: Databricks Reverse ETL Setup
Set up Databricks as your Reverse ETL source.
-At a high level, when you set up Databricks for Reverse ETL, the configured service-principal needs read permissions for any resources (databases, schemas, tables) the query needs to access. Segment keeps track of changes to your query results with a managed schema (`__SEGMENT_REVERSE_ETL`), which requires the configured service-principal to allow write permissions for that schema.
-
-> info ""
-> Segment supports only OAuth (M2M) authentication. To generate a client ID and Secret, follow the steps listed in Databricks' [OAuth machine-to-machine (M2M) authentication](https://docs.databricks.com/en/dev-tools/auth/oauth-m2m.html){:target="_blank"} documentation.
+At a high level, when you set up Databricks for Reverse ETL, the configured service-principal needs read permissions for any resources (databases, schemas, tables) the query needs to access. Segment keeps track of changes to your query results with a managed schema (`__SEGMENT_REVERSE_ETL`), which requires the configured service-principal to allow write permissions for that schema. Segment supports only OAuth (M2M) authentication. To generate a client ID and Secret, follow the steps listed in Databricks' [OAuth machine-to-machine (M2M) authentication](https://docs.databricks.com/en/dev-tools/auth/oauth-m2m.html){:target="_blank"} documentation.
+> info "Databricks Reverse ETL sources support Segment's dbt extension"
+> If you have an existing dbt account with a Git repository, you can use [Segment's dbt extension](/docs/segment-app/extensions/dbt/) to centralize model management and versioning, reduce redundancies, and run CI checks to prevent breaking changes.
## Required permissions
* Make sure the service principal you use to connect to Segment has permissions to use that warehouse. In the Databricks console go to **SQL warehouses** and select the warehouse you're using. Navigate to **Overview > Permissions** and make sure the service principal you use to connect to Segment has *can use* permissions.
@@ -60,4 +59,4 @@ To set up Databricks as your Reverse ETL source:
> Segment previously supported token-based authentication, but now uses OAuth (M2M) authentication at the recommendation of Databricks.
> If you previously set up your source using token-based authentication, Segment will continue to support it. If you want to create a new source or update the connection settings of an existing source, Segment only supports [OAuth machine-to-machine (M2M) authentication](https://docs.databricks.com/en/dev-tools/auth/oauth-m2m.html){:target="_blank"}.
-Once you've succesfully added your Databricks source, [add a model](/docs/connections/reverse-etl/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide.
+After you've successfully added your Databricks source, [add a model](/docs/connections/reverse-etl/setup/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide.
diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/postgres-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/postgres-setup.md
index 9a06ce4383..04695300ea 100644
--- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/postgres-setup.md
+++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/postgres-setup.md
@@ -6,6 +6,9 @@ Set up Postgres as your Reverse ETL source.
At a high level, when you set up Postgres for Reverse ETL, the configured user/role needs read permissions for any resources (databases, schemas, tables) the query needs to access. Segment keeps track of changes to your query results with a managed schema (`__SEGMENT_REVERSE_ETL`), which requires the configured user to allow write permissions for that schema.
+> info "Postgres Reverse ETL sources support Segment's dbt extension"
+> If you have an existing dbt account with a Git repository, you can use [Segment's dbt extension](/docs/segment-app/extensions/dbt/) to centralize model management and versioning, reduce redundancies, and run CI checks to prevent breaking changes.
+
Segment supports the following Postgres database providers:
- Heroku
- RDS
@@ -30,9 +33,11 @@ To set up Postgres with Reverse ETL:
GRANT CREATE ON DATABASE "" TO "segment";
```
4. Make sure the user has correct access permissions to the database.
-5. Follow the steps listed in the [Add a source](/docs/connections/reverse-etl/#step-1-add-a-source) section to finish adding Postgres as a source.
+5. Follow the steps listed in the [Add a source](/docs/connections/reverse-etl/setup/#step-1-add-a-source) section to finish adding Postgres as a source.
## Extra permissions
* Give the `segment` user read permissions for any resources (databases, schemas, tables) the query needs to access.
* Give the `segment` user write permissions for the Segment managed schema (`__SEGMENT_REVERSE_ETL`), which keeps track of changes to the query results.
+
+After you've successfully added your Postgres source, [add a model](/docs/connections/reverse-etl/setup/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide.
\ No newline at end of file
diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/redshift-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/redshift-setup.md
index 527d347286..6ae2d4bdc0 100644
--- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/redshift-setup.md
+++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/redshift-setup.md
@@ -5,7 +5,10 @@ redirect_from:
- '/reverse-etl/redshift-setup/'
---
-Set up Redshift as your Reverse ETL source.
+Set up Redshift as your Reverse ETL source.
+
+> info "Redshift Reverse ETL sources support Segment's dbt extension"
+> If you have an existing dbt account with a Git repository, you can use [Segment's dbt extension](/docs/segment-app/extensions/dbt/) to centralize model management and versioning, reduce redundancies, and run CI checks to prevent breaking changes.
To set up Redshift with Reverse ETL:
1. Log in to Redshift and select the Redshift cluster you want to connect with Reverse ETL.
@@ -19,7 +22,7 @@ To set up Redshift with Reverse ETL:
-- allows the "segment" user to create new schemas on the specified database. (this is the name you chose when provisioning your cluster)
GRANT CREATE ON DATABASE "" TO "segment";
```
-4. Follow the steps listed in the [Add a source](/docs/connections/reverse-etl#step-1-add-a-source) section to finish adding Redshift as your source.
+4. Follow the steps listed in the [Add a source](/docs/connections/reverse-etl/setup/#step-1-add-a-source) section to finish adding Redshift as your source.
## Extra Permissions
Give the `segment` user read permissions for any resources (databases, schemas, tables) the query needs to access.
@@ -32,3 +35,5 @@ If you are able to run the query in the Query Builder, but the sync fails with t
```ts
SELECT id FROM .
```
+
+After you've successfully added your Redshift source, [add a model](/docs/connections/reverse-etl/setup/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide.
\ No newline at end of file
diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup.md
index f48fca17ce..306cf1f5ca 100644
--- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup.md
+++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup.md
@@ -12,6 +12,9 @@ At a high level, when you set up Snowflake for Reverse ETL, the configured user/
> success ""
> Segment now supports key-pair authentication for Snowflake Reverse ETL sources. Key-pair authentication is available for Business Tier users only.
+> info "Snowflake Reverse ETL sources support Segment's dbt extension"
+> If you have an existing dbt account with a Git repository, you can use [Segment's dbt extension](/docs/segment-app/extensions/dbt/) to centralize model management and versioning, reduce redundancies, and run CI checks to prevent breaking changes.
+
## Set up guide
Follow the instructions below to set up the Segment Snowflake connector. Segment recommends you use the `ACCOUNTADMIN` role to execute all the commands below, and that you create a user that authenticates with an encrypted key pair.
@@ -77,4 +80,11 @@ Follow the instructions below to set up the Segment Snowflake connector. Segment
-- role access
GRANT ROLE segment_reverse_etl TO USER segment_reverse_etl_user;
```
-7. Follow the steps listed in the [Add a Source](/docs/connections/reverse-etl#step-1-add-a-source) section to finish adding Snowflake as a source.
+7. Add the account information for your source.
+5. Click **Test Connection** to test to see if the connection works.
+6. Click **Add source** if the test connection is successful.
+
+
+Learn more about the Snowflake Account ID in Snowflake's [Account identifiers](https://docs.snowflake.com/en/user-guide/admin-account-identifier.html){:target="_blank"} documentation.
+
+After you've successfully added your Snowflake source, [add a model](/docs/connections/reverse-etl/setup/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide.
\ No newline at end of file
diff --git a/src/connections/reverse-etl/setup.md b/src/connections/reverse-etl/setup.md
new file mode 100644
index 0000000000..a2c8e89474
--- /dev/null
+++ b/src/connections/reverse-etl/setup.md
@@ -0,0 +1,131 @@
+---
+title: Set up Reverse ETL
+beta: false
+---
+
+There are four components to Reverse ETL: Sources, Models, Destinations, and Mappings.
+
+
+
+Follow these 4 steps to set up Reverse ETL:
+1. [Add a source](#step-1-add-a-source)
+2. [Add a model](#step-2-add-a-model)
+3. [Add a destination](#step-3-add-a-destination)
+4. [Create mappings](#step-4-create-mappings)
+
+## Step 1: Add a source
+A source is where your data originates from. Traditionally in Segment, a [source](/docs/connections/sources/#what-is-a-source) is a website, server library, mobile SDK, or cloud application which can send data into Segment. In Reverse ETL, your data warehouse is the source.
+
+> warning ""
+> You need to be a user that has both read and write access to the warehouse.
+
+To add your warehouse as a source:
+
+1. Navigate to **Connections > Sources** and select the **Reverse ETL** tab in the Segment app.
+2. Click **+ Add Reverse ETL source**.
+3. Select the source you want to add.
+4. Follow the corresponding setup guide 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)
+ - [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)
+
+After you add your data warehouse as a source, you can [add a model](#step-2-add-a-model) to your source.
+
+## Step 2: Add a model
+Models are SQL queries that define sets of data you want to synchronize to your Reverse ETL destinations. After you add your source, you can add a model.
+
+> info "Use Segment's dbt extension to centralize model management and versioning"
+> Users who set up a BigQuery, Databricks, Postgres, Redshift, or Snowflake source can use Segment's [dbt extension](/docs/segment-app/extensions/dbt/) to centralize model management and versioning, reduce redundancies, and run CI checks to prevent breaking changes.
+>
+> Extensions is currently in public beta and is governed by Segment's [First Access and Beta Preview Terms](https://www.twilio.com/en-us/legal/tos){:target="_blank"}. During Public Beta, Extensions is available for Team and Developer plans only. [Reach out to Segment](mailto:friends@segment.com) if you're on a Business Tier plan and would like to participate in the Public Beta.
+
+To add your first model:
+1. Navigate to **Connections > Sources** and select the **Reverse ETL** tab. Select your source and click **Add Model**.
+2. Click **SQL Editor** as your modeling method. (Segment will add more modeling methods in the future.)
+3. Enter the SQL query that’ll define your model. Your model is used to map data to your Reverse ETL destinations.
+4. Choose a column to use as the unique identifier for each record in the **Unique Identifier column** field.
+ * The Unique Identifier should be a column with unique values per record to ensure checkpointing works as expected. It can potentially be a primary key. This column is used to detect new, updated, and deleted records.
+5. Click **Preview** to see a preview of the results of your SQL query. The data from the preview is extracted from the first 10 records of your warehouse.
+ * Segment caches preview queries and result sets in the UI, and stores the preview cache at the source level. If you make two queries for the same source, Segment returns identical preview results. However, during the next synchronization, the latest data will be sent to the connected destinations.
+6. Click **Next**.
+7. Enter your **Model Name**.
+8. Click **Create Model**.
+
+To add multiple models to your source, repeat steps 1-8 above.
+
+### Edit your model
+
+To edit your model:
+1. Navigate to **Connections > Destinations** and select the **Reverse ETL** tab.
+2. Select the source and the model you want to edit.
+3. On the overview tab, click **Edit** to edit your query.
+4. Click the **Settings** tab to edit the model name or change the schedule settings.
+
+## Step 3: Add a destination
+Once you’ve added a model, you need to add a destination. In Reverse ETL, destinations are the business tools or apps you use that Segment syncs the data from your warehouse to.
+
+Reverse ETL supports 30+ destinations: see all destinations listed in the [Reverse ETL catalog](/docs/connections/reverse-etl/reverse-etl-catalog/). If the destination you want to send data to is not listed in the Reverse ETL catalog, use the [Segment Connections Destination](/docs/connections/reverse-etl/reverse-etl-catalog/#segment-connections-destination) to send data from your Reverse ETL warehouse to your destination.
+
+Engage users can use the [Segment Profiles Destination](/docs/connections/destinations/catalog/actions-segment-profiles/) to create and update [Profiles](/docs/unify/) that can then be accessed through [Profile API](/docs/unify/profile-api/) and activated within [Twilio Engage](/docs/engage).
+
+> info "Separate endpoints and credentials required to set up third party destinations"
+> Before you begin setting up your destinations, note that each destination has different authentication requirements. See the documentation for your intended destination for more details.
+
+To add your first destination:
+1. Navigate to **Connections > Destinations** and select the **Reverse ETL** tab.
+2. Click **Add Reverse ETL destination**.
+3. Select the destination you want to connect to and click **Configure**.
+4. Select the Reverse ETL source you want to connect the destination to.
+5. Enter the **Destination name** and click **Create Destination**.
+6. Enter the required information on the **Settings** tab of the destination.
+7. Navigate to the destination settings tab and enable the destination. If the destination is disabled, then Segment won't be able to start a sync.
+
+## Step 4: Create mappings
+After you’ve added a destination, you can create mappings from your warehouse to the destination. Mappings enable you to map the data you extract from your warehouse to the fields in your destination.
+
+To create a mapping:
+1. Navigate to **Connections > Destinations** and select the **Reverse ETL** tab.
+2. Select the destination that you want to create a mapping for.
+3. Click **Add Mapping**.
+4. Select the model to sync from.
+5. Select the **Action** you want to sync and click **Next**.
+ * Actions determine the information sent to the destination. The list of Actions will be unique to each destination.
+6. Add the mapping's name. The initial name will default to the Action's name (for example, 'Track Event') but is completely customizable. It will allow you to identify the mapping amongst others.
+7. In the **Select record to map and send** section, select which records to send to your destination after Segment completes extracting data based on your model. You can choose from:
+ * Added records
+ * Updated records
+ * Added or updated records
+ * Deleted records
+8. Select a test record to preview the fields that you can map to your destination in the **Add test record** field.
+9. Select the Schedule type for the times you want the model’s data to be extracted from your warehouse. You can choose from:
+ * **Interval**: Extractions perform based on a selected time cycle.
+ * **Day and time**: Extractions perform at specific times on selected days of the week.
+10. Select how often you want the schedule to sync in **Schedule configuration**.
+ * For an **Interval** schedule type, you can choose from: 15 minutes, 30 minutes, 1 hour, 2 hours, 4 hours, 6 hours, 8 hours, 12 hours, 1 day.
+ * 15 minutes is considered real-time for warehouse syncs
+ * For a **Day and time** schedule type, you can choose the day(s) you’d like the schedule to sync as well as the time.
+ * You can only choose to start the extraction at the top of the hour.
+ * Scheduling multiple extractions to start at the same time inside the same data warehouse causes extraction errors.
+11. Define how to map the record columns from your model to your destination in the **Select Mappings** section.
+ * You map the fields that come from your source to fields that the destination expects to find. Fields on the destination side depend on the type of action selected.
+ * If you're setting up a destination action, depending on the destination, some mapping fields may require data to be in the form of an object or array. See the [supported objects and arrays for mapping](/docs/connections/reverse-etl/manage-retl/#supported-object-and-arrays).
+12. *(Optional)* Send a test record to verify the mappings correctly send to your destination.
+13. Click **Create Mapping**.
+14. Select the destination you’d like to enable on the **My Destinations** page under **Reverse ETL > Destinations**.
+15. Turn the toggle on for the **Mapping Status**. Events that match the trigger condition in the mapping will be sent to the destination.
+ * If you disable the mapping state to the destination, events that match the trigger condition in the mapping won’t be sent to the destination.
+
+To add multiple mappings from your warehouse to your destination, repeat steps 1-13 above.
+
+### Edit your mapping
+
+To edit your mapping:
+1. Navigate to **Connections > Destinations** and select the **Reverse ETL** tab.
+2. Select the destination and the mapping you want to edit.
+3. Select the **...** three dots and click **Edit mapping**. If you want to delete your mapping, select **Delete**.
+
+## Using Reverse ETL
+After you've set up your source, model, destination, and mappings for Reverse ETL, your data will extract and sync to your destination(s) right away if you chose an interval schedule. If you set your data to extract at a specific day and time, the extraction will take place then.
\ No newline at end of file
diff --git a/src/connections/reverse-etl/system.md b/src/connections/reverse-etl/system.md
new file mode 100644
index 0000000000..faf35fbe0c
--- /dev/null
+++ b/src/connections/reverse-etl/system.md
@@ -0,0 +1,55 @@
+---
+title: Reverse ETL System
+beta: false
+---
+
+View reference information about how Segment detects data changes in your warehouse and the rate and usage limits associated with Reverse ETL.
+
+## Record diffing
+Reverse ETL computes the incremental changes to your data directly within your data warehouse. The Unique Identifier column is used to detect the data changes, such as new, updated, and deleted records.
+
+> info "Delete Records Payload"
+> The only value passed for deleted records is its unique ID which can be accessed as `__segment_id`.
+
+For Segment to compute the data changes within your warehouse, Segment needs to have both read and write permissions to the warehouse schema table. At a high level, the extract process requires read permissions for the query being executed. Segment keeps track of changes to the query results through tables that Segment manages in a dedicated schema (for example, `_segment_reverse_etl`), which requires some write permissions.
+
+> warning ""
+> There may be cost implications to having Segment query your warehouse tables.
+
+## Limits
+To provide consistent performance and reliability at scale, Segment enforces default use and rate limits for Reverse ETL.
+
+### Usage limits
+Reverse ETL usage limits are measured based on the number of records processed to each destination – this includes both successful and failed records. For example, if you processed 50K records to Braze and 50K records to Mixpanel, then your total Reverse ETL usage is 100K records.
+
+Processed records represents the number of records Segment attempts to send to each destination. Keep in mind that not all processed records are successfully delivered, for example, such as when the destination experiences an issue.
+
+Your plan determines how many Reverse ETL records you can process in one monthly billing cycle. When your limit is reached before the end of your billing period, your syncs will pause and then resume on your next billing cycle. To see how many records you’ve processed using Reverse ETL, navigate to **Settings > Usage & billing** and select the **Reverse ETL** tab.
+
+Plan | Number of Reverse ETL records you can process to destinations per month | How to increase your number of Reverse ETL records
+---- | --------------------------------------------------------------------------- | ---------------------------------------------------
+Free | 500K | Upgrade to the Teams plan in the Segment app by navigating to **Settings > Usage & billing**.
+Teams | 1 million | Contact your sales representative to upgrade your plan to Business.
+Business | 50 x the number of [MTUs](/docs/guides/usage-and-billing/mtus-and-throughput/#what-is-an-mtu) or .25 x the number of monthly API calls | Contact your sales rep to upgrade your plan.
+
+If you have a non-standard or high volume usage plan, you may have unique Reverse ETL limits or custom pricing. To see your Reverse ETL limits in the Segment app, select **Settings > Usage & Billing**.
+
+### Configuration limits
+
+Name | Details | Limit
+--------- | ------- | ------
+Model query length | The maximum length for the model SQL query. | 131,072 characters
+Model identifier column name length | The maximum length for the ID column name. | 191 characters
+Model timestamp column name length | The maximum length for the timestamp column name. | 191 characters
+Sync frequency | The shortest possible duration Segment allows between syncs. | 15 minutes
+
+### Extract limits
+The extract phase is the time spent connecting to your database, executing the model query, updating internal state tables and staging the extracted records for loading.
+
+Name | Details | Limit
+----- | ------- | ------
+Record count | The maximum number of records a single sync will process. Note: This is the number of records extracted from the warehouse not the limit for the number of records loaded to the destination (for example, new/update/deleted). | 30 million records
+Column count | The maximum number of columns a single sync will process. | 512 columns
+Column name length | The maximum length of a record column. | 128 characters
+Record JSON size | The maximum size for a record when converted to JSON (some of this limit is used by Segment). | 512 KiB
+Column JSON size | The maximum size of any single column value. | 128 KiB
diff --git a/src/connections/sources/catalog/cloud-apps/aircall/index.md b/src/connections/sources/catalog/cloud-apps/aircall/index.md
index b22bc2fc5e..5e4df17c25 100644
--- a/src/connections/sources/catalog/cloud-apps/aircall/index.md
+++ b/src/connections/sources/catalog/cloud-apps/aircall/index.md
@@ -1,6 +1,5 @@
---
title: Aircall Source
-beta: true
id: p1Kv6YKjE3
---
{% include content/source-region-unsupported.md %}
diff --git a/src/connections/sources/catalog/cloud-apps/airship/index.md b/src/connections/sources/catalog/cloud-apps/airship/index.md
index 0ddb37c7f6..fe37b1a426 100644
--- a/src/connections/sources/catalog/cloud-apps/airship/index.md
+++ b/src/connections/sources/catalog/cloud-apps/airship/index.md
@@ -1,6 +1,5 @@
---
title: Airship Source
-beta: true
id: 85V0O2lkFs
---
diff --git a/src/connections/sources/catalog/cloud-apps/alloyflow/index.md b/src/connections/sources/catalog/cloud-apps/alloyflow/index.md
index 0812272255..2ef6ae9042 100644
--- a/src/connections/sources/catalog/cloud-apps/alloyflow/index.md
+++ b/src/connections/sources/catalog/cloud-apps/alloyflow/index.md
@@ -1,7 +1,6 @@
---
title: 'Alloy Flow Source'
id: DY0B0Q2Gce
-beta: true
---
[Alloy](https://runalloy.com/flow/){:target="_blank"} is a specialized no-code automation platform, built with e-commerce businesses in mind. It seamlessly integrates various applications, paving the way for a streamlined shopping experience and efficient operational workflows.
@@ -30,4 +29,4 @@ This source is maintained by Alloy. For any issues with the source, [Contact the
Alloy's integration with Segment primarily supports the following calls:
- **Track**: Captures the actions users are taking within your e-commerce platform and sends the information to Segment.
-- **Identify**: Recognizes and forwards user identities, helping Segment collate data on individual users across sessions.
\ No newline at end of file
+- **Identify**: Recognizes and forwards user identities, helping Segment collate data on individual users across sessions.
diff --git a/src/connections/sources/catalog/cloud-apps/authvia/index.md b/src/connections/sources/catalog/cloud-apps/authvia/index.md
new file mode 100644
index 0000000000..99fda2d82f
--- /dev/null
+++ b/src/connections/sources/catalog/cloud-apps/authvia/index.md
@@ -0,0 +1,43 @@
+---
+title: Authvia Source
+id: E5Y3BqhAg2
+beta: true
+---
+
+TXT2PAY from [Authvia](https://www.authvia.com/){:target="_blank”} is the easiest way to engage your customers for bills, invoices, donations, disbursement and any other payment use cases you may have. Get paid faster without having to worry about PCI compliance.
+
+This source is maintained by Authvia. For any issues with the source, [contact the Authvia Support team](mailto:support@authvia.com).
+
+## Getting started
+
+1. From your workspace's [Sources catalog page,](https://app.segment.com/authvia/sources/catalog){:target="_blank”} click **Add Source**.
+2. Search for "Authvia" in the Sources Catalog, select Authvia, and click **Add Source**.
+3. On the next screen, give the Source a name configure any other settings.
+ - The name is used as a label in the Segment app, and Segment creates a related schema name in your warehouse. The name can be anything, but we recommend using something that reflects the source itself and distinguishes amongst your environments (eg. Authvia_Prod, Authvia_Staging, Authvia_Dev).
+4. Click **Add Source** to save your settings.
+5. Copy the Write key from the Segment UI.
+6. Go to [Connect your Segment account](https://www.authvia.com/forms/setup-twilio-segment-and-authvia/){:target="_blank”} and enter your Authvia Client ID, Secret, and Segment Write Key. You will also pick your region and choose which events you would like to subscribe to. If you do not have an Authvia Client ID and Secret, request access from [the Authvia Technical Support team](https://authvia.atlassian.net/servicedesk/customer/portal/1/group/1/create/31){:target="_blank”}.
+
+## Stream
+
+Authvia uses the Authvia stream source component to send Segment event data. It uses a server-side Track or Identify method to send data to Segment. These events are then available in any destination that accepts server-side events and available in a schema in your data warehouse that you can query using SQL.
+
+The default behavior is for Authvia to pass the customer reference associated with the payer as the userId.
+
+## Events
+
+The table below lists events that Authvia sends to Segment. These events appear as tables in your warehouse, and as regular events in other Destinations. Authvia includes the `userId`.
+
+| Event Name | Description |
+| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------- |
+| Actions Created | An action was created for a customer to complete. An Action could be a payment, signature, data collection and more. |
+| Actions Updated | A customer completed the action. An Action could be a payment, signature, data collection and more. |
+| Customer Created | A new customer was created in Authvia. |
+| Customer Updated | An existing customer was updated. |
+| Customer Deleted | An existing Customer was Deleted from Authvia. |
+| Business Process Created | A new Business Process (Conversation) was created for a customer. |
+| Business Process Updated | A customer has completed some, or all Actions in a business process. Alternatively, the Business Process was cancelled or it expired. |
+
+## Event Properties
+
+For a list of properties included in the event payloads, refer to [Authvia's Webhook Documentation](https://developer.authvia.com/v3.3/reference/create-webhook-subscription){:target="_blank”}.
diff --git a/src/connections/sources/catalog/cloud-apps/beamer/index.md b/src/connections/sources/catalog/cloud-apps/beamer/index.md
index 9d83b81c29..8e3de1b7bc 100644
--- a/src/connections/sources/catalog/cloud-apps/beamer/index.md
+++ b/src/connections/sources/catalog/cloud-apps/beamer/index.md
@@ -1,6 +1,5 @@
---
title: Beamer Source
-beta: true
id: ErcsNGMEwt
---
{% include content/source-region-unsupported.md %}
diff --git a/src/connections/sources/catalog/cloud-apps/blip/index.md b/src/connections/sources/catalog/cloud-apps/blip/index.md
index e7f59a8b3d..942e59ca97 100644
--- a/src/connections/sources/catalog/cloud-apps/blip/index.md
+++ b/src/connections/sources/catalog/cloud-apps/blip/index.md
@@ -1,7 +1,6 @@
---
title: Blip Source
id: FOWuS0UQmP
-beta: true
---
[Blip](https://www.blip.ai/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank”} is an advanced conversation platform powered by AI.
diff --git a/src/connections/sources/catalog/cloud-apps/candu/index.md b/src/connections/sources/catalog/cloud-apps/candu/index.md
index fe8a603603..2d87541104 100644
--- a/src/connections/sources/catalog/cloud-apps/candu/index.md
+++ b/src/connections/sources/catalog/cloud-apps/candu/index.md
@@ -1,6 +1,5 @@
---
title: Candu Source
-beta: true
source-type: event
id: nmb56PunPc
---
diff --git a/src/connections/sources/catalog/cloud-apps/cdp-resolution-enrichment/index.md b/src/connections/sources/catalog/cloud-apps/cdp-resolution-enrichment/index.md
index 1daac5233f..a1277a03c9 100644
--- a/src/connections/sources/catalog/cloud-apps/cdp-resolution-enrichment/index.md
+++ b/src/connections/sources/catalog/cloud-apps/cdp-resolution-enrichment/index.md
@@ -1,7 +1,6 @@
---
title: Delivr.ai Enrich Source
id: HoFsjsDOW2
-beta: true
hidden: true
---
@@ -28,4 +27,4 @@ Further documentation can be found on the [Delivr.ai documentation site](https:/
## Events
-If you've correctly set up your Delivr.ai Source and configured Delivr.ai to transmit user profile data to a Segment source, user profile data will begin to populate in the Segment Source debugger as Identify and Group calls.
\ No newline at end of file
+If you've correctly set up your Delivr.ai Source and configured Delivr.ai to transmit user profile data to a Segment source, user profile data will begin to populate in the Segment Source debugger as Identify and Group calls.
diff --git a/src/connections/sources/catalog/cloud-apps/chatlio/index.md b/src/connections/sources/catalog/cloud-apps/chatlio/index.md
index c11295c7d1..35de61da37 100644
--- a/src/connections/sources/catalog/cloud-apps/chatlio/index.md
+++ b/src/connections/sources/catalog/cloud-apps/chatlio/index.md
@@ -1,6 +1,5 @@
---
title: Chatlio Source
-beta: true
id: W3065KyMWF
---
{% include content/source-region-unsupported.md %}
diff --git a/src/connections/sources/catalog/cloud-apps/commandbar/index.md b/src/connections/sources/catalog/cloud-apps/commandbar/index.md
index aa95e686d6..8e6fa368f9 100644
--- a/src/connections/sources/catalog/cloud-apps/commandbar/index.md
+++ b/src/connections/sources/catalog/cloud-apps/commandbar/index.md
@@ -1,6 +1,5 @@
---
title: CommandBar Source
-beta: true
id: QHndBw5kGO
---
diff --git a/src/connections/sources/catalog/cloud-apps/configcat/index.md b/src/connections/sources/catalog/cloud-apps/configcat/index.md
index 55b3da5cc7..f77c311ea7 100644
--- a/src/connections/sources/catalog/cloud-apps/configcat/index.md
+++ b/src/connections/sources/catalog/cloud-apps/configcat/index.md
@@ -1,7 +1,6 @@
---
title: ConfigCat Source
id: nEjnxv4kbB
-beta: true
---
[ConfigCat](https://configcat.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank”} is a feature flag and remote configuration service that empowers developers to control and customize the functionality of their applications. With ConfigCat, you can easily toggle features on and off, alter their settings, and roll out updates to specific users or groups. Targeting is supported through attributes, percentage-based rollouts, and segmentation. ConfigCat is available for all major programming languages and frameworks.
diff --git a/src/connections/sources/catalog/cloud-apps/elastic-path-cx-studio/index.md b/src/connections/sources/catalog/cloud-apps/elastic-path-cx-studio/index.md
index a02762835f..5a6deed0eb 100644
--- a/src/connections/sources/catalog/cloud-apps/elastic-path-cx-studio/index.md
+++ b/src/connections/sources/catalog/cloud-apps/elastic-path-cx-studio/index.md
@@ -1,7 +1,6 @@
---
title: Elastic Path CX Studio Source
id: NC2jsEkA8Y
-beta: true
---
[Elastic Path CX Studio](https://www.elasticpath.com/products/cx-studio?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank"} enables brands to build and deploy hosted storefronts and shoppable landing pages with dynamic personalization powered by your Segment data, all in a no-code visual editor.
diff --git a/src/connections/sources/catalog/cloud-apps/facebook-lead-ads/index.md b/src/connections/sources/catalog/cloud-apps/facebook-lead-ads/index.md
index d9c6e030d4..0d6695e1e9 100644
--- a/src/connections/sources/catalog/cloud-apps/facebook-lead-ads/index.md
+++ b/src/connections/sources/catalog/cloud-apps/facebook-lead-ads/index.md
@@ -2,12 +2,11 @@
title: Facebook Lead Ads Source
rewrite: true
strat: facebook
-beta: true
id: ODf0vA6dcH
---
{% include content/source-region-unsupported.md %}
-Facebook Lead Ads help you capture contact information from people who have expressed interest in your product. Without leaving Facebook's interface, your prospects can now share helpful information with you including work email, name, phone number, and more. Learn more about Facebook Lead Ads [here](https://www.facebook.com/business/news/lead-ads-launch){:target="_blank"}.
+Facebook Lead Ads help you capture contact information from people who have expressed interest in your product. Without leaving Facebook's interface, your prospects can now share helpful information with you including work email, name, phone number, and more. Learn more about Facebook Lead Ads [on Facebook's website](https://www.facebook.com/business/news/lead-ads-launch){:target="_blank"}.
Segment lets you make the most of your leads by automatically sending them to your business tools like CRM and email. Importantly, these destinations allow you to contact customers in real-time using your communication platform of choice, whether you've promised them a demo, a newsletter, a piece of content, or a call from a salesperson.
@@ -34,7 +33,7 @@ Use the following permissions to access the page and lead information for enrich
- pages_manage_ads
- leads_retrieval
- ads_management
-Learn more about permissions [here](https://developers.facebook.com/docs/marketing-api/guides/lead-ads/retrieving){:target="_blank"}.
+Learn more about permissions in Facebook's [Retrieving Leads](https://developers.facebook.com/docs/marketing-api/guides/lead-ads/retrieving){:target="_blank"} documentation.
**Use**
Leads Access Permissions are required to retrieve leads generated by Facebook Lead Ads. This is the default permissions for most roles. Learn more about permissions by [following this link](https://www.facebook.com/business/help/1440176552713521){:target="_blank"}.
diff --git a/src/connections/sources/catalog/cloud-apps/factual-engine/index.md b/src/connections/sources/catalog/cloud-apps/factual-engine/index.md
index 8fc26ad864..17ea4926da 100644
--- a/src/connections/sources/catalog/cloud-apps/factual-engine/index.md
+++ b/src/connections/sources/catalog/cloud-apps/factual-engine/index.md
@@ -1,6 +1,5 @@
---
title: Factual Engine Mobile SDK Source
-beta: true
source-type: event
id: n8YgCndi75
---
diff --git a/src/connections/sources/catalog/cloud-apps/foursquare-movement/index.md b/src/connections/sources/catalog/cloud-apps/foursquare-movement/index.md
index 84a104cec9..a372828a1e 100644
--- a/src/connections/sources/catalog/cloud-apps/foursquare-movement/index.md
+++ b/src/connections/sources/catalog/cloud-apps/foursquare-movement/index.md
@@ -1,6 +1,5 @@
---
title: 'Foursquare Movement Source'
-beta: true
id: Eek5OnuA7e
redirect_from:
- /connections/sources/catalog/cloud-apps/foursquare-pilgrim/
diff --git a/src/connections/sources/catalog/cloud-apps/freshchat/index.md b/src/connections/sources/catalog/cloud-apps/freshchat/index.md
index 110096d0e4..62e7207c0d 100644
--- a/src/connections/sources/catalog/cloud-apps/freshchat/index.md
+++ b/src/connections/sources/catalog/cloud-apps/freshchat/index.md
@@ -1,6 +1,5 @@
---
title: Freshchat Source
-beta: true
id: tCkZda6aKQ
---
diff --git a/src/connections/sources/catalog/cloud-apps/google-ads/index.md b/src/connections/sources/catalog/cloud-apps/google-ads/index.md
index 73a3d9c551..13ac2a9e65 100644
--- a/src/connections/sources/catalog/cloud-apps/google-ads/index.md
+++ b/src/connections/sources/catalog/cloud-apps/google-ads/index.md
@@ -34,7 +34,7 @@ id: cQ8NOxeApJ
### Permissions
-When you set up your Google Ads Source, you may notice that all the Google Ads accounts your Google user can view aren't listed. This is because the Google Ads API doesn't expose a list of "managed" or sub-accounts to non-administrators using the API. That said, if you have read permissions to the account and would like to add it, please [contact Support](https://segment.com/help/contact){:target="_blank"}. For more information about finding your Google Ads Customer ID, see [here](https://support.google.com/google-ads/answer/1704344?co=ADWORDS.IsAWNCustomer%3Dfalse&hl=en){:target="_blank"}.
+When you set up your Google Ads Source, you may notice that all the Google Ads accounts your Google user can view aren't listed. This is because the Google Ads API doesn't expose a list of "managed" or sub-accounts to non-administrators using the API. That said, if you have read permissions to the account and would like to add it, please [contact Support](https://segment.com/help/contact){:target="_blank"}. For more information about finding your Google Ads Customer ID, see Google's [Find your Google Ads customer ID](https://support.google.com/google-ads/answer/1704344?co=ADWORDS.IsAWNCustomer%3Dfalse&hl=en){:target="_blank"} docs.
### What Google Ads MCC do you sync?
By default, the primary Google Ads account connected to your Google account syncs to Segment. If you would like to override this, please [contact Support](https://segment.com/help/contact){:target="_blank"}.
diff --git a/src/connections/sources/catalog/cloud-apps/gwen-webhooks/index.md b/src/connections/sources/catalog/cloud-apps/gwen-webhooks/index.md
index 330617644f..1d3e64a06d 100644
--- a/src/connections/sources/catalog/cloud-apps/gwen-webhooks/index.md
+++ b/src/connections/sources/catalog/cloud-apps/gwen-webhooks/index.md
@@ -24,7 +24,7 @@ This source is maintained by Insert Coin AB. For any issues with the source, [co
## Stream
-GWEN Webhooks uses a stream Source component to send Segment event data. It uses a server-side (select from `track`, `identify`, `page`, `group`) method(s) to send GWEN user data to Segment (Read more about GWEN webhook data [here](app.gwenplatform.com/docs/webhooks/segment)). These events are then available in any destination that accepts server-side events, and also available in a schema in your data warehouse, so you can query using SQL.
+GWEN Webhooks uses a stream Source component to send Segment event data. It uses a server-side (select from `track`, `identify`, `page`, `group`) method(s) to send GWEN user data to Segment (Read more about GWEN webhook data [in the GWEN documentation](app.gwenplatform.com/docs/webhooks/segment)). These events are then available in any destination that accepts server-side events, and also available in a schema in your data warehouse, so you can query using SQL.
The default behavior is for GWEN Webhooks to pass the userId associated with the user who triggered the given update. This may or may not be a userId that you are keeping track of, depending on under what circumstances the user has been created within GWEN.
For example, users created anonymously by using the [GWEN Analytics script](https://app.gwenplatform.com/docs/gwen-analytics){:target="blank"} will likely have a userId unknown to you.
diff --git a/src/connections/sources/catalog/cloud-apps/herow/index.md b/src/connections/sources/catalog/cloud-apps/herow/index.md
index d11291c8af..ca30c91ebb 100644
--- a/src/connections/sources/catalog/cloud-apps/herow/index.md
+++ b/src/connections/sources/catalog/cloud-apps/herow/index.md
@@ -1,6 +1,5 @@
---
title: Herow
-beta: true
id: xJSb170s6B
---
{% include content/source-region-unsupported.md %}
diff --git a/src/connections/sources/catalog/cloud-apps/hubspot/index.md b/src/connections/sources/catalog/cloud-apps/hubspot/index.md
index a0c52a092a..b87b3e0db3 100644
--- a/src/connections/sources/catalog/cloud-apps/hubspot/index.md
+++ b/src/connections/sources/catalog/cloud-apps/hubspot/index.md
@@ -61,7 +61,7 @@ Due to HubSpot's [API Rate Limits](http://developers.hubspot.com/apps/api_guidel
Below are tables outlining the properties included in the collections listed above. To see the full description of each property, refer to the HubSpot documentation linked in the collections above.
-If you have Custom Properties on Contacts or Companies collections that you would like to sync, submit a ticket with HubSpot API names of the custom properties [here](http://segment.com/help/contact){:target="_blank"}.
+If you have Custom Properties on Contacts or Companies collections that you would like to sync, submit a [Segment Support](http://segment.com/help/contact){:target="_blank"} ticket with HubSpot API names of the custom properties.
> info ""
> For Deals collection, Segment retrieves properties that the HubSpot API returns, which means you can add the new fields on your own from HubSpot if you have the necessary permissions.
diff --git a/src/connections/sources/catalog/cloud-apps/klenty/index.md b/src/connections/sources/catalog/cloud-apps/klenty/index.md
index 812e3e40e2..aa64811c3a 100644
--- a/src/connections/sources/catalog/cloud-apps/klenty/index.md
+++ b/src/connections/sources/catalog/cloud-apps/klenty/index.md
@@ -1,6 +1,5 @@
---
title: Klenty Source
-beta: true
id: D6h3UEduNW
---
{% include content/source-region-unsupported.md %}
diff --git a/src/connections/sources/catalog/cloud-apps/leanplum/index.md b/src/connections/sources/catalog/cloud-apps/leanplum/index.md
index 1807a6fb30..dc342f704a 100644
--- a/src/connections/sources/catalog/cloud-apps/leanplum/index.md
+++ b/src/connections/sources/catalog/cloud-apps/leanplum/index.md
@@ -1,6 +1,5 @@
---
title: Leanplum Source
-beta: true
source-type: event
id: NRgENc89eR
---
diff --git a/src/connections/sources/catalog/cloud-apps/livelike-source/index.md b/src/connections/sources/catalog/cloud-apps/livelike-source/index.md
index 2662984424..670e4a246d 100644
--- a/src/connections/sources/catalog/cloud-apps/livelike-source/index.md
+++ b/src/connections/sources/catalog/cloud-apps/livelike-source/index.md
@@ -1,7 +1,6 @@
---
title: LiveLike Source
id: EjYD7n6dOa
-beta: true
---
[LiveLike](https://livelike.com/){:target="_blank"} is a technology company dedicated to empowering digital experiences that enable deeper fan engagement, increased retention rates, and new monetization opportunities.
diff --git a/src/connections/sources/catalog/cloud-apps/onesignal/index.md b/src/connections/sources/catalog/cloud-apps/onesignal/index.md
index 86afc0ef4d..25f5edb7c0 100644
--- a/src/connections/sources/catalog/cloud-apps/onesignal/index.md
+++ b/src/connections/sources/catalog/cloud-apps/onesignal/index.md
@@ -1,7 +1,6 @@
---
title: OneSignal Source
id: o9OyD6xsVJ
-beta: true
---
[OneSignal](https://onesignal.com){:target="_blank"} is designed to help you send notifications and seamlessly manage your user communication across every channel, including mobile push notifications, web push notifications, in-app messaging, bulk SMS, and email. The OneSignal platform is quick to set up and makes it easy to customize and automate your messaging strategy without doing any development work.
@@ -96,4 +95,4 @@ Now that your source is set up, you can connect it with Destinations.
Log in to your downstream tools and check to see that your events appear as expected. Ensure the events contain all of the properties you expect. If your events and properties don’t appear, check the Event Delivery tool, and refer to the Destination docs for each tool for troubleshooting.
-If there are any issues with how the events are arriving to Segment, [contact the OneSignal Support team](mailto:support@onesignal.com).
\ No newline at end of file
+If there are any issues with how the events are arriving to Segment, [contact the OneSignal Support team](mailto:support@onesignal.com).
diff --git a/src/connections/sources/catalog/cloud-apps/onetrust/index.md b/src/connections/sources/catalog/cloud-apps/onetrust/index.md
index 14c533f4c1..25a4b9c405 100644
--- a/src/connections/sources/catalog/cloud-apps/onetrust/index.md
+++ b/src/connections/sources/catalog/cloud-apps/onetrust/index.md
@@ -1,7 +1,6 @@
---
title: OneTrust Source
id: QhEUZnE5uF
-beta: true
---
OneTrust makes it easy for you to capture, centralize, govern, and sync consented first party data while keeping trust & transparency at the forefront of all consumer interactions. The OneTrust Integration provides data to Segment’s CDP and allows you to view & activate consented data in the appropriate way.
diff --git a/src/connections/sources/catalog/cloud-apps/paytronix/index.md b/src/connections/sources/catalog/cloud-apps/paytronix/index.md
index a844a9f3e7..88ba03d703 100644
--- a/src/connections/sources/catalog/cloud-apps/paytronix/index.md
+++ b/src/connections/sources/catalog/cloud-apps/paytronix/index.md
@@ -1,7 +1,6 @@
---
title: 'Paytronix Source'
id: Zd5BXedXsa
-beta: true
---
[Paytronix](https://support-paytronix.force.com/help/s/article/000001348){:target="_blank”} is the leading provider of Digital Customer Engagement Solutions for restaurants, convenience stores, and retailers who seek to develop lasting relationships with their guests. For over 20 years, Paytronix has grown its Guest Engagement Platform to seamlessly incorporate individual components of digital customer engagement into a single, robust platform.
diff --git a/src/connections/sources/catalog/cloud-apps/provesource/index.md b/src/connections/sources/catalog/cloud-apps/provesource/index.md
index df0e614e70..675952f1d5 100644
--- a/src/connections/sources/catalog/cloud-apps/provesource/index.md
+++ b/src/connections/sources/catalog/cloud-apps/provesource/index.md
@@ -1,6 +1,5 @@
---
title: ProveSource Source
-beta: true
id: aC11S74HWK
---
{% include content/source-region-unsupported.md %}
diff --git a/src/connections/sources/catalog/cloud-apps/pushwoosh-source/index.md b/src/connections/sources/catalog/cloud-apps/pushwoosh-source/index.md
index c14500dc93..a66e5126ef 100644
--- a/src/connections/sources/catalog/cloud-apps/pushwoosh-source/index.md
+++ b/src/connections/sources/catalog/cloud-apps/pushwoosh-source/index.md
@@ -1,7 +1,6 @@
---
title: Pushwoosh Source
id: MW9K4HgBZz
-beta: true
---
[Pushwoosh] (https://pushwoosh.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank”} provides a comprehensive mobile engagement platform, offering advanced push notifications, and in-app messaging to enhance customer interactions and retention.
diff --git a/src/connections/sources/catalog/cloud-apps/qualtrics/index.md b/src/connections/sources/catalog/cloud-apps/qualtrics/index.md
index 92cdcccce7..69938aa5ad 100644
--- a/src/connections/sources/catalog/cloud-apps/qualtrics/index.md
+++ b/src/connections/sources/catalog/cloud-apps/qualtrics/index.md
@@ -1,6 +1,5 @@
---
title: 'Qualtrics Source'
-beta: true
---
[Qualtrics](https://qualtrics.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank"} is an Experience Management platform that allows companies to design and improve customer and employee experiences through listening, analysis, and action.
diff --git a/src/connections/sources/catalog/cloud-apps/ratehighly/index.md b/src/connections/sources/catalog/cloud-apps/ratehighly/index.md
index 6fb481e362..511445203d 100644
--- a/src/connections/sources/catalog/cloud-apps/ratehighly/index.md
+++ b/src/connections/sources/catalog/cloud-apps/ratehighly/index.md
@@ -1,7 +1,6 @@
---
title: RateHighly Source
id: P1kUrzj9pv
-beta: true
hidden: true
---
diff --git a/src/connections/sources/catalog/cloud-apps/sendgrid-marketing-campaigns/index.md b/src/connections/sources/catalog/cloud-apps/sendgrid-marketing-campaigns/index.md
index 679e982483..6da1522b50 100644
--- a/src/connections/sources/catalog/cloud-apps/sendgrid-marketing-campaigns/index.md
+++ b/src/connections/sources/catalog/cloud-apps/sendgrid-marketing-campaigns/index.md
@@ -1,7 +1,6 @@
---
title: SendGrid Marketing Campaigns Source
id: GCeG0vmcDW
-beta: true
---
[SendGrid Marketing Campaigns](http://twilio.com/docs/sendgrid/ui/integrations/segment?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank”} lets you automatically stream your email events directly into Segment for use inside your warehouse or other downstream destinations.
diff --git a/src/connections/sources/catalog/cloud-apps/shopify-fueled/index.md b/src/connections/sources/catalog/cloud-apps/shopify-fueled/index.md
index 8f64820f71..c3ffa9c9e6 100644
--- a/src/connections/sources/catalog/cloud-apps/shopify-fueled/index.md
+++ b/src/connections/sources/catalog/cloud-apps/shopify-fueled/index.md
@@ -1,7 +1,6 @@
---
title: Shopify - Powered by Fueled
id: 57hcOLuW6Q
-beta: true
---
[Fueled](https://fueled.io){:target="_blank"} is a 1st-party event collector, designed specifically for eCommerce. Fueled captures the first-party and zero-party events that fire on a Shopify website, and sends them to various destinations - most notably, Segment. Fueled leverages a combination of client-side and server-side event collection technologies to provide reliable, accurate event tracking. In addition to tracking website events in the browser, Fueled tracks offline purchase events, such as point-of-sale orders and subscription rebilling events triggered by Shopify apps like ReCharge Payments, Smartrr, Bold Subscriptions, and Skio.
diff --git a/src/connections/sources/catalog/cloud-apps/surveysparrow/index.md b/src/connections/sources/catalog/cloud-apps/surveysparrow/index.md
index 21499f67ef..91b3fb248c 100644
--- a/src/connections/sources/catalog/cloud-apps/surveysparrow/index.md
+++ b/src/connections/sources/catalog/cloud-apps/surveysparrow/index.md
@@ -2,7 +2,6 @@
title: SurveySparrow Source
id: di2sOHoscX
hidden: true
-beta: true
---
[SurveySparrow](https://surveysparrow.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank"} is an end-to-end omnichannel experience management platform that bundles Customer Experience and Employee Experience tools such as NPS, Offline, Chat, Classic, and 360 Surveys which are mobile-first, highly engaging, and user-friendly.
@@ -56,4 +55,4 @@ Now that your Source is set up, you can connect it with Destinations.
Log in to your downstream tools and check to see that your events appear as expected, and that they contain all of the properties you expect. If your events and properties don't appear, check the [Event Delivery](/docs/connections/event-delivery/) tool, and refer to the Destination docs for each tool for troubleshooting.
-If there are any issues with how the events are arriving to Segment, [contact the SurveySparrow support team](mailto:support@surveysparrow.com).
\ No newline at end of file
+If there are any issues with how the events are arriving to Segment, [contact the SurveySparrow support team](mailto:support@surveysparrow.com).
diff --git a/src/connections/sources/catalog/cloud-apps/synap/index.md b/src/connections/sources/catalog/cloud-apps/synap/index.md
index 7b1717e248..6e6e704964 100644
--- a/src/connections/sources/catalog/cloud-apps/synap/index.md
+++ b/src/connections/sources/catalog/cloud-apps/synap/index.md
@@ -1,7 +1,6 @@
---
title: Synap Source
id: OyAdFUfMz9
-beta: true
---
[Synap](https://synap.ac){:target="_blank”} is an online exam platform specialising in the delivery of high stakes exams, assessments and online learning. Synap is used by a wide range of companies and educational institutions to deliver high quality, robust assessments.
diff --git a/src/connections/sources/catalog/cloud-apps/upollo/index.md b/src/connections/sources/catalog/cloud-apps/upollo/index.md
index e8cc8f6986..b20ffd85f1 100644
--- a/src/connections/sources/catalog/cloud-apps/upollo/index.md
+++ b/src/connections/sources/catalog/cloud-apps/upollo/index.md
@@ -1,7 +1,6 @@
---
title: Upollo Source
id: 9TYqEh3nMe
-beta: true
---
[Upollo](https://upollo.ai?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank"} gives unique and actionable insights that lead to conversion, retention, and expansion.
diff --git a/src/connections/sources/catalog/cloud-apps/userguiding/index.md b/src/connections/sources/catalog/cloud-apps/userguiding/index.md
index 1a08dfd75e..5c4854dc27 100644
--- a/src/connections/sources/catalog/cloud-apps/userguiding/index.md
+++ b/src/connections/sources/catalog/cloud-apps/userguiding/index.md
@@ -1,7 +1,6 @@
---
title: UserGuiding Source
id: VShGHAfvlr
-beta: true
---
[UserGuiding](https://userguiding.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank”} is a product adoption platform that helps product teams automate in-app experiences that turn new users into champions.
diff --git a/src/connections/sources/catalog/cloud-apps/white-label-loyalty/index.md b/src/connections/sources/catalog/cloud-apps/white-label-loyalty/index.md
index 92fb6c9d44..d7513f66e9 100644
--- a/src/connections/sources/catalog/cloud-apps/white-label-loyalty/index.md
+++ b/src/connections/sources/catalog/cloud-apps/white-label-loyalty/index.md
@@ -1,7 +1,6 @@
---
title: White Label Loyalty Source
id: xeZMgSrtAQ
-beta: true
---
[White Label Loyalty](https://whitelabel-loyalty.com/){:target="_blank”} is an event-powered loyalty solution to drive customer retention.
diff --git a/src/connections/sources/catalog/cloud-apps/yotpo/index.md b/src/connections/sources/catalog/cloud-apps/yotpo/index.md
index 946a19026b..12bede0f06 100644
--- a/src/connections/sources/catalog/cloud-apps/yotpo/index.md
+++ b/src/connections/sources/catalog/cloud-apps/yotpo/index.md
@@ -1,6 +1,5 @@
---
title: Yotpo Source
-beta: true
id: q4JbVJwmrg
---
diff --git a/src/connections/sources/catalog/cloud-apps/youbora/index.md b/src/connections/sources/catalog/cloud-apps/youbora/index.md
index 6a61359b4c..3619abecd2 100644
--- a/src/connections/sources/catalog/cloud-apps/youbora/index.md
+++ b/src/connections/sources/catalog/cloud-apps/youbora/index.md
@@ -1,6 +1,5 @@
---
title: Youbora Source
-beta: true
hidden: true
id: 117eYCe9jH
---
diff --git a/src/connections/sources/catalog/index.md b/src/connections/sources/catalog/index.md
index 48892ee6dd..2957b30195 100644
--- a/src/connections/sources/catalog/index.md
+++ b/src/connections/sources/catalog/index.md
@@ -42,7 +42,7 @@ Below is a list of the available sources on the Segment platform.
{{ integration.display_name }}
- {% if site.data.catalog.beta_sources contains integration.id %}
+ {% if integration.status == 'PUBLIC_BETA' %}
Beta
{% endif %}
diff --git a/src/connections/sources/catalog/libraries/mobile/amp/index.md b/src/connections/sources/catalog/libraries/mobile/amp/index.md
index e978b86471..3f972d78f6 100644
--- a/src/connections/sources/catalog/libraries/mobile/amp/index.md
+++ b/src/connections/sources/catalog/libraries/mobile/amp/index.md
@@ -57,7 +57,7 @@ For sources in [EU workspaces](/docs/guides/regional-segment/), use the followin
```
-By default, the snippet will automatically fire a page event which you can read more about [here](/docs/connections/sources/catalog/libraries/mobile/amp/#page).
+By default, the snippet will automatically fire a page event which you can read more about [in the Page section of this documentation](/docs/connections/sources/catalog/libraries/mobile/amp/#page).
## Page
@@ -222,8 +222,8 @@ This identity schema will allow you to join down funnel interaction with earlier
### Why aren't all my IDs prefixed with an 'amp-'?
All AMP events won't consistently have an 'amp-' prefixed ID as this is only included in the event that the AMP page is directly visited on your domain.
-For further details refer to the various `Client ID` scenarios in relation to AMP pages [here]( https://developers.google.com/analytics/devguides/collection/amp-analytics/client-id){:target="_blank"} (Segment can only guarantee that if the third scenario happens, the AMP ID will get generated and picked up).
-
+For further details refer to the various `Client ID` scenarios in relation to AMP pages [in Google's docs]( https://developers.google.com/analytics/devguides/collection/amp-analytics/client-id){:target="_blank"} (Segment can only guarantee that if the third scenario happens, the AMP ID will get generated and picked up).
+
See a live AMP with Segment analytics
diff --git a/src/connections/sources/catalog/libraries/mobile/android/index.md b/src/connections/sources/catalog/libraries/mobile/android/index.md
index 9a4ee04008..80bff29ade 100644
--- a/src/connections/sources/catalog/libraries/mobile/android/index.md
+++ b/src/connections/sources/catalog/libraries/mobile/android/index.md
@@ -1,14 +1,14 @@
---
-title: 'Analytics for Android'
+title: 'Analytics-Android'
strat: android
repo: analytics-android
support_type: maintenance
id: wXNairW5xX
---
- Analytics for Android makes it easier for you to send data to any tool without having to learn, test or implement a new API every time.
+Analytics-Android makes it easier for you to send data to any tool without having to learn, test or implement a new API every time.
-Analytics for Android only supports any Android device running API 14 (Android 4.0) and higher. This includes Amazon Fire devices.
+Analytics-Android only supports any Android device running API 14 (Android 4.0) and higher. This includes Amazon Fire devices.
> info "Analytics-Kotlin"
> The Analytics-Kotlin library is in General Availability. You can use Analytics-Kotlin for [mobile](/docs/connections/sources/catalog/libraries/mobile/kotlin-android/) or [server](/docs/connections/sources/catalog/libraries/server/kotlin) applications. If you'd like to upgrade to Analytics-Kotlin, see the [migration guide](/docs/connections/sources/catalog/libraries/mobile/kotlin-android/migration/). Segment's future development efforts concentrate on the new Analytics-Kotlin SDK, and will only ship security updates for the Analytics-Android SDK.
diff --git a/src/connections/sources/catalog/libraries/mobile/android/quickstart.md b/src/connections/sources/catalog/libraries/mobile/android/quickstart.md
index 221f06e79b..0632742fa9 100644
--- a/src/connections/sources/catalog/libraries/mobile/android/quickstart.md
+++ b/src/connections/sources/catalog/libraries/mobile/android/quickstart.md
@@ -135,4 +135,4 @@ Once you've added a few `track` calls, **you're done!** You successfully instrum
## What's Next?
-We just walked through the quickest way to get started with Segment using Analytics for Android. You might also want to check out our full [Analytics for 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.
+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/mobile/android/wear.md b/src/connections/sources/catalog/libraries/mobile/android/wear.md
index 4ece7ced87..4e8727560d 100644
--- a/src/connections/sources/catalog/libraries/mobile/android/wear.md
+++ b/src/connections/sources/catalog/libraries/mobile/android/wear.md
@@ -1,16 +1,16 @@
---
-title: 'Analytics for Android Wear'
+title: 'Analytics-Android Wear'
strat: android
hidden: true
---
-Analytics for Android Wear makes it simple to send your data to any tool without having to learn, test or implement a new API every time.
+Analytics-Android Wear makes it simple to send your data to any tool without having to learn, test, or implement a new API every time.
-All of Segment's client libraries are open-source, so you can [view Analytics for Android on GitHub](https://github.com/segmentio/analytics-android), or check out our [browser and server-side libraries](/docs/connections/sources/catalog/) too.
+All of Segment's client libraries are open-source, so you can [view Analytics-Android on GitHub](https://github.com/segmentio/analytics-android), or check out our [browser and server-side libraries](/docs/connections/sources/catalog/) too.
## Getting Started
-To get started with Analytics for Android Wear check out our [quickstart guide](/docs/connections/sources/catalog/libraries/mobile/android/quickstart/) which will help you install analytics tracking in your mobile app in just a few minutes. Once you've installed the SDK, read on for setting it up the wear part of your App. Note that you can only use the Android SDK v2 or later with wear, and that any Beta APIs below are subject to change.
+To get started with Analytics-Android Wear check out our [quickstart guide](/docs/connections/sources/catalog/libraries/mobile/android/quickstart/) which will help you install analytics tracking in your mobile app in just a few minutes. Once you've installed the SDK, read on for setting it up the wear part of your App. Note that you can only use the Android SDK v2 or later with wear, and that any Beta APIs below are subject to change.
## Adding the Wear dependency
diff --git a/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/adjust-swift.md b/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/adjust-swift.md
index 6c253b9268..2ecb072e10 100644
--- a/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/adjust-swift.md
+++ b/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/adjust-swift.md
@@ -3,10 +3,10 @@ title: Analytics Swift Adjust Plugin
strat: swift
---
-[Adjust](https://adjust.com){:target="_blank"} is the mobile attribution provider of choice for hundreds of organizations across the globe. They unify all your marketing activities into one powerful platform, giving you the insights you need to scale your business. The Adjust Destination is open-source. You can browse the code on GitHub [here](https://github.com/segment-integrations/analytics-swift-integration-adjust).
+[Adjust](https://adjust.com){:target="_blank"} is the mobile attribution provider of choice for hundreds of organizations across the globe. They unify all your marketing activities into one powerful platform, giving you the insights you need to scale your business. The Adjust Destination is open-source. You can browse the code on GitHub in the [@segment-integrations/analytics-swift-integration-adjust](https://github.com/segment-integrations/analytics-swift-integration-adjust){:target="_blank”} repo.
> info ""
-> Note that this plugin simply adds session data for Adjust, and events are sent via Cloud Mode.
+> Note that this plugin simply adds session data for Adjust, and events are sent in Cloud Mode.
## Getting started
@@ -19,14 +19,14 @@ strat: swift
## Adding the dependency
-### via Xcode
+### Xcode
In the Xcode `File` menu, click `Add Packages`. You'll see a dialog where you can search for Swift packages. In the search field, enter the URL to this repo.
https://github.com/segment-integrations/analytics-swift-integration-adjust
You'll then have the option to pin to a version, or specific branch, as well as which project in your workspace to add it to. Once you've made your selections, click the `Add Package` button.
-### via Package.swift
+### Package.swift
Open your Package.swift file and add the following do your the `dependencies` section:
diff --git a/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/adobe-swift.md b/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/adobe-swift.md
index 07fe84d2a5..a8718848a8 100644
--- a/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/adobe-swift.md
+++ b/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/adobe-swift.md
@@ -4,7 +4,7 @@ strat: adobe
redirect_from: '/connections/destinations/catalog/omniture/'
id: 5783cec280412f644ff14226
---
-After you enable Adobe Analytics (formerly known as Omniture or Sitecatalyst) in Segment, you can start sending data from any of the Segment [libraries](/docs/connections/sources/catalog/) to an Adobe report suite. When you send events from Segment's mobile SDKs or Cloud-mode libraries, Segment translates that data using a mapping that you configure, and then passes it to the Adobe Analytics [Data Insertion API](https://docs.adobe.com/content/help/en/analytics/import/c-data-insertion-api.html){:target="_blank”}. For additional details, you can browse the code on GitHub [here](https://github.com/segment-integrations/analytics-swift-adobe-analytics).
+After you enable Adobe Analytics (formerly known as Omniture or Sitecatalyst) in Segment, you can start sending data from any of the Segment [libraries](/docs/connections/sources/catalog/) to an Adobe report suite. When you send events from Segment's mobile SDKs or Cloud-mode libraries, Segment translates that data using a mapping that you configure, and then passes it to the Adobe Analytics [Data Insertion API](https://docs.adobe.com/content/help/en/analytics/import/c-data-insertion-api.html){:target="_blank”}. For additional details, you can browse the code on GitHub in the [@segment-integrations/analytics-swift-adobe-analytics](https://github.com/segment-integrations/analytics-swift-adobe-analytics){:target="_blank”} repo.
## Planning for Adobe Analytics
diff --git a/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/appsflyer-swift.md b/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/appsflyer-swift.md
index 4096a5b36a..8da169e543 100644
--- a/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/appsflyer-swift.md
+++ b/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/appsflyer-swift.md
@@ -94,7 +94,7 @@ Finally, Segment uses AppsFlyer's `transactionId` deduplication when you send an
## Install Attributed
-Segment will automatically trigger an `Install Attributed` event if you have **trackAttributionData** enabled in your settings, and the Segment-AppsFlyer integration installed in your app. The event payload will adhere to the `Install Attributed` event specification documented [here](/docs/connections/spec/mobile/#install-attributed) and will propagate to your other downstream destinations.
+Segment will automatically trigger an `Install Attributed` event if you have **trackAttributionData** enabled in your settings, and the Segment-AppsFlyer integration installed in your app. The event payload will adhere to the `Install Attributed` event specification documented [in Segment's Mobile Spec](/docs/connections/spec/mobile/#install-attributed) and will propagate to your other downstream destinations.
### Revenue Tracking
diff --git a/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/braze-swift.md b/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/braze-swift.md
index cab72d4e23..1b49a63be3 100644
--- a/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/braze-swift.md
+++ b/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/braze-swift.md
@@ -4,7 +4,7 @@ title: Analytics Swift Braze Plugin
[Braze](https://www.braze.com/), formerly Appboy, is an engagement platform that empowers growth by helping marketing teams to build customer loyalty through mobile, omni-channel customer experiences.
-Braze’s destination plugin code is open source and available on GitHub. You can view it [here](https://github.com/braze-inc/analytics-swift-braze). This destination plugin is maintained by Braze. For any issues with the destination plugin code, please reach out to Braze's support.
+Braze’s destination plugin code is open source and available on GitHub. You can view it on GitHub in the [@braze-inc/analytics-swift-braze](https://github.com/braze-inc/analytics-swift-braze){:target="_blank”} repo. This destination plugin is maintained by Braze. For any issues with the destination plugin code, please reach out to Braze's support.
## Getting Started
diff --git a/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/firebase-swift.md b/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/firebase-swift.md
index c1e24b1c67..8c958b583a 100644
--- a/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/firebase-swift.md
+++ b/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/firebase-swift.md
@@ -179,4 +179,4 @@ Firebase is Google's recommended method for reporting conversions to Adwords. To
### Troubleshooting
-Firebase has great logging. If you are having any issues, you can enable debug mode as outlined [here](https://firebase.google.com/docs/analytics/debugview).
\ No newline at end of file
+Firebase has great logging. If you are having any issues, you can enable debug mode as outlined in Google's [Debug events](https://firebase.google.com/docs/analytics/debugview){:target="_blank”} docs.
\ No newline at end of file
diff --git a/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/mixpanel-swift.md b/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/mixpanel-swift.md
index 26a7959831..a33823047b 100644
--- a/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/mixpanel-swift.md
+++ b/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/mixpanel-swift.md
@@ -251,11 +251,11 @@ If you're testing in Xcode remember you must first background the app, then the
If an `ip` property is passed to Mixpanel, the value will be interpreted as the IP address of the request and therefore automatically parsed into Mixpanel geolocation properties (City, Country, Region). After that IP address has been parsed, they will throw out the IP address and only hold onto those resulting geolocation properties. As such, if you want to display an IP address as a property within the Mixpanel UI or within raw data, you will simply want to slightly modify the naming convention for that property.
-Instead of `ip`, you can use a property name of `user IP` or `IP Address` (whatever is most clear for your implementation). This way, Mixpanel won't automatically interpret the IP address as an IP address, and instead store that value as a property on the event. You can read more [here](https://mixpanel.com/help/reference/http#tracking-events){:target="_blank"}.
+Instead of `ip`, you can use a property name of `user IP` or `IP Address` (whatever is most clear for your implementation). This way, Mixpanel won't automatically interpret the IP address as an IP address, and instead store that value as a property on the event. You can read more in Mixpanel's [Import Events](https://mixpanel.com/help/reference/http#tracking-events){:target="_blank"} docs.
### Push Notifications
Push notifications are only available for projects bundling the Segment-Mixpanel SDK.
> info ""
-> Set up your push notification handlers by calling into native Mixpanel methods. You can read more about how to approach this in the [iOS](/docs/connections/sources/catalog/libraries/mobile/ios/#what-if-your-sdk-doesnt-support-feature-x)
\ No newline at end of file
+> Set up your push notification handlers by calling into native Mixpanel methods. You can read more about how to approach this in the [iOS](/docs/connections/sources/catalog/libraries/mobile/ios/#what-if-your-sdk-doesnt-support-feature-x) docs.
\ No newline at end of file
diff --git a/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/nielsen-dtvr-swift.md b/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/nielsen-dtvr-swift.md
index 0912b30cea..5bc1ccbbb3 100644
--- a/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/nielsen-dtvr-swift.md
+++ b/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/nielsen-dtvr-swift.md
@@ -3,7 +3,7 @@ title: Analytics Swift Nielsen DTVR Plugin
hidden: true
---
-Digital in TV Ratings (DTVR) responds to the shifting and complex multi-platform, multi-device and multi-distribution landscape by providing comprehensive measurement of digital content consumption—including streaming TV commercial video, static web pages and mobile apps—across all major devices and platforms. For additional information, you can browse the code on GitHub [here](https://github.com/segment-integrations/analytics-swift-nielsen-dtvr).
+Digital in TV Ratings (DTVR) responds to the shifting and complex multi-platform, multi-device and multi-distribution landscape by providing comprehensive measurement of digital content consumption—including streaming TV commercial video, static web pages and mobile apps—across all major devices and platforms. For additional information, you can browse the code on GitHub in the [@segment-integrations/analytics-swift-nielsen-dtvr](https://github.com/segment-integrations/analytics-swift-nielsen-dtvr){:target="_blank”} repo.
## Getting started
diff --git a/src/connections/sources/catalog/libraries/mobile/apple/implementation.md b/src/connections/sources/catalog/libraries/mobile/apple/implementation.md
index 5bf3b35625..bc2076965f 100644
--- a/src/connections/sources/catalog/libraries/mobile/apple/implementation.md
+++ b/src/connections/sources/catalog/libraries/mobile/apple/implementation.md
@@ -1,5 +1,5 @@
---
-title: Analytics for Swift Implementation Guide
+title: Analytics-Swift Implementation Guide
strat: swift
tags:
- apple
diff --git a/src/connections/sources/catalog/libraries/mobile/apple/index.md b/src/connections/sources/catalog/libraries/mobile/apple/index.md
index e7f2f594ed..b57ba18960 100644
--- a/src/connections/sources/catalog/libraries/mobile/apple/index.md
+++ b/src/connections/sources/catalog/libraries/mobile/apple/index.md
@@ -130,7 +130,7 @@ See Segment's documentation for [device-mode destinations](/docs/connections/sou
See Segment's [cloud-mode destinations](/docs/connections/sources/catalog/libraries/mobile/apple/cloud-mode-destinations/) for a full list of available cloud-mode destinations that Swift supports.
- Segment offers support for two different types of Destinations, learn more about the differences between the two [here]().
+ Segment offers support for two different types of destination connection modes: Cloud-mode and Device-mode. learn more about the differences between the two in the Segment [Destination docs](/docs/connections/destinations/#connection-modes).
{% include components/reference-button.html
@@ -152,7 +152,7 @@ See Segment's [cloud-mode destinations](/docs/connections/sources/catalog/librar
## Tools and extensions
-Analytics for Swift is built with extensibility in mind. Use the tools list below to improve data collection.
+Analytics-Swift is built with extensibility in mind. Use the tools list below to improve data collection.
- [Plugin architecture](/docs/connections/sources/catalog/libraries/mobile/swift/swift-plugin-architecture)
- [Typewriter](/docs/connections/sources/catalog/libraries/mobile/swift/swift-typewriter)
diff --git a/src/connections/sources/catalog/libraries/mobile/apple/swift-destination-filters.md b/src/connections/sources/catalog/libraries/mobile/apple/swift-destination-filters.md
index e2e3c6e85c..777a6e54c0 100644
--- a/src/connections/sources/catalog/libraries/mobile/apple/swift-destination-filters.md
+++ b/src/connections/sources/catalog/libraries/mobile/apple/swift-destination-filters.md
@@ -1,5 +1,5 @@
---
-title: Analytics for Swift Destination Filters
+title: Analytics-Swift Destination Filters
strat: swift
---
> info ""
diff --git a/src/connections/sources/catalog/libraries/mobile/apple/swift-plugin-architecture.md b/src/connections/sources/catalog/libraries/mobile/apple/swift-plugin-architecture.md
index d920206092..f4680fe3f3 100644
--- a/src/connections/sources/catalog/libraries/mobile/apple/swift-plugin-architecture.md
+++ b/src/connections/sources/catalog/libraries/mobile/apple/swift-plugin-architecture.md
@@ -1,5 +1,5 @@
---
-title: Analytics for Swift Plugin Architecture
+title: Analytics-Swift Plugin Architecture
strat: swift
---
diff --git a/src/connections/sources/catalog/libraries/mobile/apple/swift-samples.md b/src/connections/sources/catalog/libraries/mobile/apple/swift-samples.md
index 9794f3e129..b1c14be228 100644
--- a/src/connections/sources/catalog/libraries/mobile/apple/swift-samples.md
+++ b/src/connections/sources/catalog/libraries/mobile/apple/swift-samples.md
@@ -1,5 +1,5 @@
---
-title: Analytics for Swift Code Samples
+title: Analytics-Swift Code Samples
strat: swift
---
diff --git a/src/connections/sources/catalog/libraries/mobile/apple/swift-typewriter.md b/src/connections/sources/catalog/libraries/mobile/apple/swift-typewriter.md
index baffde1a45..770b865ef0 100644
--- a/src/connections/sources/catalog/libraries/mobile/apple/swift-typewriter.md
+++ b/src/connections/sources/catalog/libraries/mobile/apple/swift-typewriter.md
@@ -1,5 +1,5 @@
---
-title: Analytics for Swift Typewriter
+title: Analytics-Swift Typewriter
strat: swift
---
[Typewriter](https://github.com/segmentio/typewriter) is a tool for generating strongly-typed Segment analytics libraries based on your pre-defined [Tracking Plan](/docs/protocols/tracking-plan) spec.
diff --git a/src/connections/sources/catalog/libraries/mobile/ios/index.md b/src/connections/sources/catalog/libraries/mobile/ios/index.md
index 07090f9141..594934ad2f 100644
--- a/src/connections/sources/catalog/libraries/mobile/ios/index.md
+++ b/src/connections/sources/catalog/libraries/mobile/ios/index.md
@@ -1,11 +1,11 @@
---
-title: Analytics for iOS
+title: Analytics-iOS
strat: ios
repo: analytics-ios
support_type: maintenance
id: UBrsG9RVzw
---
-With Analytics for iOS, you can send your data to analytics or marketing tool, without needing to learn, test, or implement a new API with each update or addition.
+With Analytics-iOS, you can send your data to analytics or marketing tool, without needing to learn, test, or implement a new API with each update or addition.
@@ -57,7 +57,7 @@ When the app is terminated, Segment saves the queue to disk, and loads that data
### Install the SDK
-The recommended way to install Analytics for iOS is using [Cocoapods](http://cocoapods.org/), since it means you can create a build with specific destinations, and because it makes it simple to install and upgrade.
+The recommended way to install Analytics-iOS is using [CocoaPods](http://cocoapods.org/){:target="_blank"}, since it means you can create a build with specific destinations, and because it makes it simple to install and upgrade.
First, add the `Analytics` dependency to your `Podfile`, like so:
@@ -313,7 +313,7 @@ Analytics.shared().identify("a user's id", traits: ["email": "a user's email add
-Analytics for iOS works on its own background thread, so it will never block the main thread for the UI or the calling thread.
+Analytics-iOS works on its own background thread, so it will never block the main thread for the UI or the calling thread.
Calling `- identify:` with a `userId` will write that ID to disk to be used in subsequent calls. That ID can be removed either by uninstalling the app or by calling [`reset`](#reset).
diff --git a/src/connections/sources/catalog/libraries/mobile/ios/quickstart.md b/src/connections/sources/catalog/libraries/mobile/ios/quickstart.md
index 73b1f131a7..f976bd00e1 100644
--- a/src/connections/sources/catalog/libraries/mobile/ios/quickstart.md
+++ b/src/connections/sources/catalog/libraries/mobile/ios/quickstart.md
@@ -26,7 +26,7 @@ When you create a Source in the Segment web app, it tells the Segment servers th
## Step 2: Install the SDK
-Segment recommends you install Analytics for iOS by using either [Cocoapods](http://cocoapods.org/) or your Swift Package Manager. These allow you to create a build with specific bundled destinations, and they have a simplified installation and upgrading process.
+Segment recommends you install Analytics-iOS by using either [CocoaPods](http://cocoapods.org/){:target="_blank"} or your Swift Package Manager. These allow you to create a build with specific bundled destinations, and they have a simplified installation and upgrading process.
### Install the SDK using Swift Package Manager
@@ -234,4 +234,4 @@ Analytics.shared().flush()
## What's Next?
-We just walked through the quickest way to get started with Segment using Analytics for iOS. You might also want to check out our full [Analytics for iOS reference](/docs/connections/sources/catalog/libraries/mobile/ios) 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.
+We just walked through the quickest way to get started with Segment using Analytics-iOS. You might also want to check out our full [Analytics-iOS reference](/docs/connections/sources/catalog/libraries/mobile/ios) 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/mobile/kotlin-android/destination-plugins/adjust-kotlin-android.md b/src/connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins/adjust-kotlin-android.md
index 937bd13b25..e819892a5b 100644
--- a/src/connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins/adjust-kotlin-android.md
+++ b/src/connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins/adjust-kotlin-android.md
@@ -2,7 +2,7 @@
title: Analytics Kotlin Adjust Plugin
strat: kotlin-android
---
-[Adjust](https://adjust.com){:target="_blank"} is the mobile attribution provider of choice for hundreds of organizations across the globe. They unify all your marketing activities into one powerful platform, giving you the insights you need to scale your business. The Adjust Destination is open-source. You can browse the code on GitHub [here](https://github.com/segmentio/analytics-kotlin).
+[Adjust](https://adjust.com){:target="_blank"} is the mobile attribution provider of choice for hundreds of organizations across the globe. They unify all your marketing activities into one powerful platform, giving you the insights you need to scale your business. The Adjust Destination is open-source. You can browse the code on GitHub in the [@segmentio/analytics-kotlin](https://github.com/segmentio/analytics-kotlin){:target="_blank”} repository.
## Getting started
diff --git a/src/connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins/adobe-kotlin-android.md b/src/connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins/adobe-kotlin-android.md
index 80365d5cac..dc134cf17c 100644
--- a/src/connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins/adobe-kotlin-android.md
+++ b/src/connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins/adobe-kotlin-android.md
@@ -4,7 +4,7 @@ strat: adobe
redirect_from: '/connections/destinations/catalog/omniture/'
id: 5783cec280412f644ff14226
---
-After you enable Adobe Analytics (formerly known as Omniture or Sitecatalyst) in Segment, you can start sending data from any of the Segment [libraries](/docs/connections/sources/catalog/) to an Adobe report suite. When you send events from Segment's mobile SDKs or Cloud-mode libraries, Segment translates that data using a mapping that you configure, and then passes it to the Adobe Analytics [Data Insertion API](https://docs.adobe.com/content/help/en/analytics/import/c-data-insertion-api.html){:target="_blank”}. For more information, you can browse the code on GitHub [here](https://github.com/segment-integrations/analytics-kotlin-adobe-analytics).
+After you enable Adobe Analytics (formerly known as Omniture or Sitecatalyst) in Segment, you can start sending data from any of the Segment [libraries](/docs/connections/sources/catalog/) to an Adobe report suite. When you send events from Segment's mobile SDKs or Cloud-mode libraries, Segment translates that data using a mapping that you configure, and then passes it to the Adobe Analytics [Data Insertion API](https://docs.adobe.com/content/help/en/analytics/import/c-data-insertion-api.html){:target="_blank”}. For more information, you can browse the code on GitHub in the [@segment-integrations/analytics-kotlin-adobe-analytics](https://github.com/segment-integrations/analytics-kotlin-adobe-analytics){:target="_blank”} repository.
## Planning for Adobe Analytics
diff --git a/src/connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins/appsflyer-kotlin-android.md b/src/connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins/appsflyer-kotlin-android.md
index 117f1c721c..f8a94881ba 100644
--- a/src/connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins/appsflyer-kotlin-android.md
+++ b/src/connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins/appsflyer-kotlin-android.md
@@ -82,7 +82,7 @@ Segment includes all the event properties as callback parameters on the AppsFlye
## Install Attributed
-Segment will automatically trigger an `Install Attributed` event if you have **trackAttributionData** enabled in your settings, and the Segment-AppsFlyer integration installed in your app. The event payload will adhere to the `Install Attributed` event specification documented [here](/docs/connections/spec/mobile/#install-attributed) and will propagate to your other downstream destinations.
+Segment will automatically trigger an `Install Attributed` event if you have **trackAttributionData** enabled in your settings, and the Segment-AppsFlyer integration installed in your app. The event payload will adhere to the `Install Attributed` event specification documented [in the Spec: Mobile](/docs/connections/spec/mobile/#install-attributed) docs and will propagate to your other downstream destinations.
This logic depends on the Appsflyer `AppsFlyerConversionListener` [interface](https://dev.appsflyer.com/hc/docs/android-sdk-reference-appsflyerconversionlistener){:target="_blank"}, and will only send when Appsflyer detects an install.
diff --git a/src/connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins/braze-kotlin-android.md b/src/connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins/braze-kotlin-android.md
index ce9264c0e5..c0f32ec09b 100644
--- a/src/connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins/braze-kotlin-android.md
+++ b/src/connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins/braze-kotlin-android.md
@@ -5,7 +5,7 @@ strat: kotlin-android
[Braze](https://www.braze.com/), formerly Appboy, is an engagement platform that empowers growth by helping marketing teams to build customer loyalty through mobile, omni-channel customer experiences.
-Braze’s destination plugin code is open source and available on GitHub. You can view it [here](https://github.com/braze-inc/braze-segment-kotlin){:target="_blank"}. This destination plugin is maintained by Braze. For any issues with the destination plugin code, please reach out to Braze's support.
+Braze’s destination plugin code is open source and available on GitHub. You can view it on GitHub in the [@braze-inc/braze-segment-kotlin](https://github.com/braze-inc/braze-segment-kotlin){:target="_blank"} repository. This destination plugin is maintained by Braze. For any issues with the destination plugin code, please reach out to Braze's support.
## Getting Started
diff --git a/src/connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins/firebase-kotlin-android.md b/src/connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins/firebase-kotlin-android.md
index 1bf9401742..ceabccc3bf 100644
--- a/src/connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins/firebase-kotlin-android.md
+++ b/src/connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins/firebase-kotlin-android.md
@@ -148,4 +148,4 @@ Firebase is Google's recommended method for reporting conversions to Adwords. To
### Troubleshooting
-Firebase has great logging. If you are having any issues, you can enable debug mode as outlined [here](https://firebase.google.com/docs/analytics/debugview).
\ No newline at end of file
+Firebase has great logging. If you are having any issues, you can enable debug mode as outlined [in Google'd Debug view](https://firebase.google.com/docs/analytics/debugview){:target="_blank”} documentation.
\ No newline at end of file
diff --git a/src/connections/sources/catalog/libraries/mobile/kotlin-android/implementation.md b/src/connections/sources/catalog/libraries/mobile/kotlin-android/implementation.md
index 372eff3a40..947e31d518 100644
--- a/src/connections/sources/catalog/libraries/mobile/kotlin-android/implementation.md
+++ b/src/connections/sources/catalog/libraries/mobile/kotlin-android/implementation.md
@@ -1,5 +1,5 @@
---
-title: Analytics for Kotlin Implementation Guide
+title: Analytics-Kotlin Implementation Guide
strat: kotlin-android
tags:
- android
diff --git a/src/connections/sources/catalog/libraries/mobile/kotlin-android/index.md b/src/connections/sources/catalog/libraries/mobile/kotlin-android/index.md
index 12c1a43328..fea5f89276 100644
--- a/src/connections/sources/catalog/libraries/mobile/kotlin-android/index.md
+++ b/src/connections/sources/catalog/libraries/mobile/kotlin-android/index.md
@@ -1,5 +1,5 @@
---
-title: 'Analytics for Kotlin (Android)'
+title: 'Analytics-Kotlin (Android)'
strat: kotlin-android
redirect_from:
- '/connections/sources/catalog/cloud-apps/kotlin/'
@@ -167,7 +167,7 @@ Once you've installed the mobile or server Analytics Kotlin library, you can sta
### Destinations
Destinations are the business tools or apps that Segment forwards your data to. Adding Destinations allow you to act on your data and learn more about your customers in real time.
- Segment offers support for two different types of Destinations, learn more about the differences between the two [here]().
+ Segment offers support for two different types of destination connection modes: Cloud-mode and Device-mode. learn more about the differences between the two in the Segment [Destination docs](/docs/connections/destinations/#connection-modes).
@@ -190,7 +190,7 @@ Destinations are the business tools or apps that Segment forwards your data to.
## Tools and extensions
-Analytics for Kotlin is built with extensibility in mind. Use the tools list below to improve data collection.
+Analytics-Kotlin is built with extensibility in mind. Use the tools list below to improve data collection.
- [Plugin architecture](https://segment.com/docs/connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins/)
- [Typewriter](/docs/connections/sources/catalog/libraries/mobile/kotlin-android/kotlin-android-typewriter)
diff --git a/src/connections/sources/catalog/libraries/mobile/kotlin-android/kotlin-android-destination-filters.md b/src/connections/sources/catalog/libraries/mobile/kotlin-android/kotlin-android-destination-filters.md
index 9becb311bf..7b83cf3b75 100644
--- a/src/connections/sources/catalog/libraries/mobile/kotlin-android/kotlin-android-destination-filters.md
+++ b/src/connections/sources/catalog/libraries/mobile/kotlin-android/kotlin-android-destination-filters.md
@@ -1,5 +1,5 @@
---
-title: Analytics for Kotlin Destination Filters
+title: Analytics-Kotlin Destination Filters
strat: kotlin-android
---
diff --git a/src/connections/sources/catalog/libraries/mobile/kotlin-android/kotlin-android-faq.md b/src/connections/sources/catalog/libraries/mobile/kotlin-android/kotlin-android-faq.md
index 1949ab727d..8e1f3dea68 100644
--- a/src/connections/sources/catalog/libraries/mobile/kotlin-android/kotlin-android-faq.md
+++ b/src/connections/sources/catalog/libraries/mobile/kotlin-android/kotlin-android-faq.md
@@ -1,5 +1,5 @@
---
-title: Analytics for Kotlin FAQ
+title: Analytics-Kotlin FAQ
strat: kotlin-android
---
diff --git a/src/connections/sources/catalog/libraries/mobile/kotlin-android/kotlin-android-plugin-architecture.md b/src/connections/sources/catalog/libraries/mobile/kotlin-android/kotlin-android-plugin-architecture.md
index b93b3f3922..719cf160e9 100644
--- a/src/connections/sources/catalog/libraries/mobile/kotlin-android/kotlin-android-plugin-architecture.md
+++ b/src/connections/sources/catalog/libraries/mobile/kotlin-android/kotlin-android-plugin-architecture.md
@@ -1,5 +1,5 @@
---
-title: Analytics for Kotlin Plugin Architecture
+title: Analytics-Kotlin Plugin Architecture
strat: kotlin-android
---
diff --git a/src/connections/sources/catalog/libraries/mobile/kotlin-android/kotlin-android-samples.md b/src/connections/sources/catalog/libraries/mobile/kotlin-android/kotlin-android-samples.md
index 32809c4782..97870e04e9 100644
--- a/src/connections/sources/catalog/libraries/mobile/kotlin-android/kotlin-android-samples.md
+++ b/src/connections/sources/catalog/libraries/mobile/kotlin-android/kotlin-android-samples.md
@@ -1,5 +1,5 @@
---
-title: Analytics for Kotlin Code Samples
+title: Analytics-Kotlin Code Samples
strat: swift
---
diff --git a/src/connections/sources/catalog/libraries/mobile/kotlin-android/kotlin-android-typewriter.md b/src/connections/sources/catalog/libraries/mobile/kotlin-android/kotlin-android-typewriter.md
index f8cd366a13..43080864d0 100644
--- a/src/connections/sources/catalog/libraries/mobile/kotlin-android/kotlin-android-typewriter.md
+++ b/src/connections/sources/catalog/libraries/mobile/kotlin-android/kotlin-android-typewriter.md
@@ -1,5 +1,5 @@
---
-title: Analytics for Kotlin Typewriter
+title: Analytics-Kotlin Typewriter
strat: kotlin-android
---
[Typewriter](https://github.com/segmentio/typewriter) is a tool for generating strongly-typed Segment analytics libraries based on your pre-defined [Tracking Plan](/docs/protocols/tracking-plan) spec.
diff --git a/src/connections/sources/catalog/libraries/mobile/kotlin-android/migration.md b/src/connections/sources/catalog/libraries/mobile/kotlin-android/migration.md
index 4b1a62e2be..a8ffb572f8 100644
--- a/src/connections/sources/catalog/libraries/mobile/kotlin-android/migration.md
+++ b/src/connections/sources/catalog/libraries/mobile/kotlin-android/migration.md
@@ -1,5 +1,5 @@
---
-title: Analytics for Kotlin Migration Guide
+title: Analytics-Kotlin Migration Guide
strat: kotlin-android
tags:
- android
@@ -386,7 +386,7 @@ If you don't need to transform all of your Segment calls, and only want to trans
## 4. Upgrade Notes
> info "You might need to call Identify as a one-off after migrating to Kotlin"
-> To preserve the userId for users identified prior to your migration to Kotlin, you must make a one-off Identify call. This is due to a storage format change between the Analytics for Android and Analytics-Kotlin libraries.
+> To preserve the userId for users identified prior to your migration to Kotlin, you must make a one-off Identify call. This is due to a storage format change between the Analytics-Android and Analytics-Kotlin libraries.
### 4.a) Changes to the Configuration Object
diff --git a/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/adjust-react-native.md b/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/adjust-react-native.md
index 6f7ce4f2c0..896fa863aa 100644
--- a/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/adjust-react-native.md
+++ b/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/adjust-react-native.md
@@ -3,7 +3,7 @@ title: Analytics React Native Adjust Plugin
strat: react-native
---
-[Adjust](https://adjust.com){:target="_blank"} is the mobile attribution provider of choice for hundreds of organizations across the globe. They unify all your marketing activities into one powerful platform, giving you the insights you need to scale your business. The Adjust Destination is open-source. You can browse the code on GitHub [here](https://github.com/segmentio/analytics-react-native/tree/master/packages/plugins/plugin-adjust).
+[Adjust](https://adjust.com){:target="_blank"} is the mobile attribution provider of choice for hundreds of organizations across the globe. They unify all your marketing activities into one powerful platform, giving you the insights you need to scale your business. The Adjust Destination is open-source. You can browse the code on GitHub in the [@segmentio/analytics-react-native](https://github.com/segmentio/analytics-react-native/tree/master/packages/plugins/plugin-adjust){:target="_blank”} repository.
## Getting started
diff --git a/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/appsflyer-react-native.md b/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/appsflyer-react-native.md
index c0854f399f..3092eaeee2 100644
--- a/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/appsflyer-react-native.md
+++ b/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/appsflyer-react-native.md
@@ -105,7 +105,7 @@ Finally, Segment uses AppsFlyer's `transactionId` deduplication when you send an
## Install Attributed
-Segment will automatically trigger an `Install Attributed` event if you have **trackAttributionData** enabled in your settings, and the Segment-AppsFlyer integration installed in your app. The event payload will adhere to the `Install Attributed` event specification documented [here](/docs/connections/spec/mobile/#install-attributed) and will propagate to your other downstream destinations.
+Segment will automatically trigger an `Install Attributed` event if you have **trackAttributionData** enabled in your settings, and the Segment-AppsFlyer integration installed in your app. The event payload will adhere to the `Install Attributed` event specification documented [in the Spec: Mobile](/docs/connections/spec/mobile/#install-attributed) docs and will propagate to your other downstream destinations.
### Revenue Tracking
diff --git a/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/braze-middleware-react-native.md b/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/braze-middleware-react-native.md
index 7ce0a62111..eab35ec3ff 100644
--- a/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/braze-middleware-react-native.md
+++ b/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/braze-middleware-react-native.md
@@ -5,9 +5,9 @@ strat: react-native
[Braze](https://www.braze.com/){:target="_blank"}, formerly Appboy, is an engagement platform that empowers growth by helping marketing teams to build customer loyalty through mobile, omni-channel customer experiences.
-Braze’s middleware plugin code is open source and available on GitHub. You can view it [here](https://github.com/segmentio/analytics-react-native/tree/master/packages/plugins/plugin-braze-middleware){:target="_blank"}.
+Braze’s middleware plugin code is open source and available on GitHub. You can view it on GitHub in the [@segmentio/analytics-react-native](https://github.com/segmentio/analytics-react-native/tree/master/packages/plugins/plugin-braze-middleware){:target="_blank"}.
-The Braze middleware plugin is a `BeforePlugin` used to debounce `identify` events for [Braze](https://www.braze.com). This Plugin should be used with a [Cloud Mode](/docs/connections/destinations/#connection-modes) connection to Braze. To connect to Braze with a Device Mode connection use the [Braze Destination Plugin](https://www.npmjs.com/package/@segment/analytics-react-native-plugin-braze) instead. It is not possible to use both plugins in one `Analytics React Native` instance.
+The Braze middleware plugin is a `BeforePlugin` used to debounce `identify` events for [Braze](https://www.braze.com){:target="_blank"}. This Plugin should be used with a [Cloud Mode](/docs/connections/destinations/#connection-modes) connection to Braze. To connect to Braze with a Device Mode connection use the [Braze Destination Plugin](https://www.npmjs.com/package/@segment/analytics-react-native-plugin-braze){:target="_blank"} instead. It is not possible to use both plugins in one `Analytics React Native` instance.
## Installation
@@ -24,7 +24,7 @@ yarn add @segment/analytics-react-native-plugin-braze-middleware
```
## Usage
-Follow the [instructions for adding plugins](https://github.com/segmentio/analytics-react-native#adding-plugins) on the main Analytics client:
+Follow the [instructions for adding plugins](https://github.com/segmentio/analytics-react-native#adding-plugins){:target="_blank"} on the main Analytics client:
In your code where you initialize the analytics client call the `.add(plugin)` method with an `BrazeMiddlewarePlugin` instance:
diff --git a/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/firebase-react-native.md b/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/firebase-react-native.md
index 463288f198..bc065aca90 100644
--- a/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/firebase-react-native.md
+++ b/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/firebase-react-native.md
@@ -4,7 +4,7 @@ strat: react-native
---
Firebase is Google's platform for mobile apps. The Segment Firebase destination requires that you bundle the Firebase SDK with your project. The Segment-wrapped destination code then runs on the user's device, and sends its tracking calls to the Firebase API endpoints, and a copy to Segment for archiving.
-Firebase’s destination plugin code is open source and available on GitHub. You can view it [here](https://github.com/segmentio/analytics-react-native/tree/master/packages/plugins/plugin-firebase).
+Firebase’s destination plugin code is open source and available on GitHub. You can view it in the [@segmentio/analytics-react-native](https://github.com/segmentio/analytics-react-native/tree/master/packages/plugins/plugin-firebase){:target="_blank"} repository.
## Adding the dependency
@@ -134,4 +134,4 @@ Firebase is Google's recommended method for reporting conversions to Adwords. To
### Troubleshooting
-Firebase has great logging. If you are having any issues, you can enable debug mode as outlined [here](https://firebase.google.com/docs/analytics/debugview).
+Firebase has great logging. If you are having any issues, you can enable debug mode as outlined [in Google's Debug view docs](https://firebase.google.com/docs/analytics/debugview){:target="_blank"}.
diff --git a/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/mixpanel-react-native.md b/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/mixpanel-react-native.md
index 799b68cab2..30fa0347bc 100644
--- a/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/mixpanel-react-native.md
+++ b/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/mixpanel-react-native.md
@@ -234,4 +234,4 @@ If you're testing in Xcode remember you must first background the app, then the
If an `ip` property is passed to Mixpanel, the value will be interpreted as the IP address of the request and therefore automatically parsed into Mixpanel geolocation properties (City, Country, Region). After that IP address has been parsed, they will throw out the IP address and only hold onto those resulting geolocation properties. As such, if you want to display an IP address as a property within the Mixpanel UI or within raw data, you will simply want to slightly modify the naming convention for that property.
-Instead of `ip`, you can use a property name of `user IP` or `IP Address` (whatever is most clear for your implementation). This way, Mixpanel won't automatically interpret the IP address as an IP address, and instead store that value as a property on the event. You can read more [here](https://mixpanel.com/help/reference/http#tracking-events){:target="_blank"}.
\ No newline at end of file
+Instead of `ip`, you can use a property name of `user IP` or `IP Address` (whatever is most clear for your implementation). This way, Mixpanel won't automatically interpret the IP address as an IP address, and instead store that value as a property on the event. You can read more in Mixpanel's [Import Events](https://mixpanel.com/help/reference/http#tracking-events){:target="_blank"} documentation.
\ No newline at end of file
diff --git a/src/connections/sources/catalog/libraries/mobile/react-native/index.md b/src/connections/sources/catalog/libraries/mobile/react-native/index.md
index f8625b0d85..c0a0ce9a87 100644
--- a/src/connections/sources/catalog/libraries/mobile/react-native/index.md
+++ b/src/connections/sources/catalog/libraries/mobile/react-native/index.md
@@ -92,7 +92,7 @@ These are the options you can apply to configure the client:
## Adding Plugins to the Client
-You can add a plugin at any time through the `segmentClient.add()` method. More information about plugins, including a detailed architecture overview and a guide to creating your own can be found [here](/docs/connections/sources/catalog/libraries/mobile/react-native/react-native-plugin-architecture/).
+You can add a plugin at any time through the `segmentClient.add()` method. More information about plugins, including a detailed architecture overview and a guide to creating your own can be found in the [Analytics React Native Plugin Architecture](/docs/connections/sources/catalog/libraries/mobile/react-native/react-native-plugin-architecture/) docs.
```js
import { createClient } from '@segment/analytics-react-native';
@@ -203,7 +203,7 @@ Once you've installed the Analytics React Native library, you can start collecti
## Destinations
Destinations are the business tools or apps that Segment forwards your data to. Adding Destinations allow you to act on your data and learn more about your customers in real time.
- Segment offers support for two different types of Destinations, learn more about the differences between the two [here]().
+ Segment offers support for two different types of destination connection modes: Cloud-mode and Device-mode. learn more about the differences between the two in the Segment [Destination docs](/docs/connections/destinations/#connection-modes).
{% include components/reference-button.html
diff --git a/src/connections/sources/catalog/libraries/server/csharp/index.md b/src/connections/sources/catalog/libraries/server/csharp/index.md
index f034bf4982..70a581dc83 100644
--- a/src/connections/sources/catalog/libraries/server/csharp/index.md
+++ b/src/connections/sources/catalog/libraries/server/csharp/index.md
@@ -35,7 +35,7 @@ To get started with the Analytics-CSharp library:
1. Create a Source in Segment.
1. Go to **Connections > Sources > Add Source**.
2. Search for *Xamarin, Unity, or .NET* (whichever source you want to use) and click **Add Source**. **Note:** There is no CSharp source. To use Analytics-CSharp, use either Xamarin, Unity, or .NET as your source.
-2. Add the Analytics dependency to your project. Analytics-CSharp is distributed through NuGet. Check other installation options [here](https://www.nuget.org/packages/Segment.Analytics.CSharp/).
+2. Add the Analytics dependency to your project. Analytics-CSharp is distributed through NuGet. Check other installation options on the Segment.Analytics.CSharp [NuGet page](https://www.nuget.org/packages/Segment.Analytics.CSharp/){:target="_blank"}.
```
dotnet add package Segment.Analytics.CSharp --version
@@ -415,9 +415,9 @@ class FlushOnScreenEventsPolicy : IFlushPolicy
## Handling Errors
You can handle analytics client errors through the `analyticsErrorHandler` option.
-The error handler configuration requires an instance that implements `IAnalyticsErrorHandler` which will get called whenever an error happens on the analytics client. It will receive a general `Exception`, but you can check if the exception is a type of `AnalyticsError` and converts to get more info about the error. Checkout [here](https://github.com/segmentio/Analytics-CSharp/blob/main/Analytics-CSharp/Segment/Analytics/Errors.cs#L77) to see a full list of error types that analytics throws.
+The error handler configuration requires an instance that implements `IAnalyticsErrorHandler` which will get called whenever an error happens on the analytics client. It will receive a general `Exception`, but you can check if the exception is a type of `AnalyticsError` and converts to get more info about the error. Check out [the @segmentio/Analytics-CSharp](https://github.com/segmentio/Analytics-CSharp/blob/main/Analytics-CSharp/Segment/Analytics/Errors.cs#L77){:target="_blank"} repository to see a full list of error types that analytics throws.
-You can use this error handling to trigger different behaviours in the client when a problem occurs. For example if the client gets rate limited you could use the error handler to swap flush policies to be less aggressive:
+You can use this error handling to trigger different behaviors in the client when a problem occurs. For example if the client gets rate limited you could use the error handler to swap flush policies to be less aggressive:
```csharp
class NetworkErrorHandler : IAnalyticsErrorHandler
diff --git a/src/connections/sources/catalog/libraries/server/kotlin/index.md b/src/connections/sources/catalog/libraries/server/kotlin/index.md
index 17d1a036c4..449cd79a44 100644
--- a/src/connections/sources/catalog/libraries/server/kotlin/index.md
+++ b/src/connections/sources/catalog/libraries/server/kotlin/index.md
@@ -1,5 +1,5 @@
---
-title: Analytics for Kotlin (Server)
+title: Analytics-Kotlin (Server)
redirect_from:
- '/connections/sources/catalog/cloud-apps/kotlin/'
id: yMu7LRR59b
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 b1dc344ca4..e9c0f7a972 100644
--- a/src/connections/sources/catalog/libraries/server/object-api/index.md
+++ b/src/connections/sources/catalog/libraries/server/object-api/index.md
@@ -195,7 +195,7 @@ Client.Set(*objects.Object{
Client.Close()
```
-View the Objects-go library on GitHub [here](https://github.com/segmentio/objects-go){:target="_blank"}.
+View the Objects-go library on GitHub in the [@segmentio/objects-go](https://github.com/segmentio/objects-go){:target="_blank"} repository.
Here is a `curl` example of how to get started:
diff --git a/src/connections/sources/catalog/libraries/server/python/index.md b/src/connections/sources/catalog/libraries/server/python/index.md
index ac0b205dfe..8e00f08b37 100644
--- a/src/connections/sources/catalog/libraries/server/python/index.md
+++ b/src/connections/sources/catalog/libraries/server/python/index.md
@@ -156,7 +156,7 @@ The Page call has the following fields:
| `user_id` _string | The ID for the user that is a part of the group. |
| `category` _string, optional_ | The category of the page. Useful for industries, like ecommerce, where many pages often live under a larger category. |
| `name` _string, optional_ | The name of the page, for example **Signup** or **Home**. |
-| `properties` _dict, optional_ | The page properties. To see a reference of reserved page properties, see the spec [here](/docs/connections/spec/page/#properties). |
+| `properties` _dict, optional_ | The page properties. To see a reference of reserved page properties, see the [Spec: Page](/docs/connections/spec/page/#properties) documentation. |
| `context` _dict, optional_ | A dict containing any context about the request. To see the full reference of supported keys, check them out in the [context reference](/docs/connections/spec/common/#context) |
| `timestamp` _datetime, optional_ | A `datetime` object representing when the Page took place. This is most useful if you're importing historical data. If the Page just happened, leave it blank to use the server's time. |
| `anonymous_id` _string or int, optional_ | An anonymous session ID for this user. |
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 27e024a067..4228ee3bdc 100644
--- a/src/connections/sources/catalog/libraries/website/javascript/custom-proxy.md
+++ b/src/connections/sources/catalog/libraries/website/javascript/custom-proxy.md
@@ -36,7 +36,7 @@ You need to set up two important parts, regardless of the CDN provider you use:
> If you are using a [Regional Workspace](/docs/guides/regional-segment/#client-side-sources), please note that instead of using `api.segment.io` to proxy the Tracking API, you'll be using `events.eu1.segmentapis.com`
> info ""
-> Segment only has the ability to enable the proxy setting for the Web (Analytics.js) source. Details for mobile source proxies are in the [Analytics for iOS](/docs/connections/sources/catalog/libraries/mobile/ios/#proxy-https-calls) and [Analytics for Android](/docs/connections/sources/catalog/libraries/mobile/android/#proxying-http-calls) documentation. It is not currently possible to set up a proxy for server sources using the Segment UI.
+> Segment only has the ability to enable the proxy setting for the Web (Analytics.js) source. Details for mobile source proxies are in the [Analytics-iOS](/docs/connections/sources/catalog/libraries/mobile/ios/#proxy-https-calls) and [Analytics-Android](/docs/connections/sources/catalog/libraries/mobile/android/#proxying-http-calls) documentation. It is not currently possible to set up a proxy for server sources using the Segment UI.
## Custom Proxy setup
diff --git a/src/connections/sources/catalog/libraries/website/javascript/index.md b/src/connections/sources/catalog/libraries/website/javascript/index.md
index d2af9e4879..629c1fa5de 100644
--- a/src/connections/sources/catalog/libraries/website/javascript/index.md
+++ b/src/connections/sources/catalog/libraries/website/javascript/index.md
@@ -513,7 +513,7 @@ Destination flags are **case sensitive** and match [the destination's name in th
### Load options
> info ""
-> **Note:** To use this feature, you must be on snippet version 4.1.0 or later. You can get the latest version of the snippet [here](/docs/connections/sources/catalog/libraries/website/javascript/quickstart/#step-2-copy-the-segment-snippet).
+> **Note:** To use this feature, you must be on snippet version 4.1.0 or later. You can get the latest version of the snippet from the [Analytics.js Quickstart](/docs/connections/sources/catalog/libraries/website/javascript/quickstart/#step-2-copy-the-segment-snippet).
You can modify the `.load` method in Analytics.js (the second line of the snippet) to take a second argument. If you pass an object with an `integrations` dictionary, then Segment only loads the integrations in that dictionary that are marked as enabled with the boolean value `true`.
@@ -936,7 +936,7 @@ Bundle the destinations you want loaded from [npm](https://www.npmjs.com/package
})
```
- Pass in the destination plugin to the added config option called `plugins`. A list of all action destination packages can be found [here](https://github.com/segmentio/action-destinations/blob/main/packages/destinations-manifest/package.json){:target="_blank"}.
+ Pass in the destination plugin to the added config option called `plugins`. A list of all action destination packages can be found on GitHub in the [@segmentio/action-destinations](https://github.com/segmentio/action-destinations/blob/main/packages/destinations-manifest/package.json){:target="_blank"} repository.
* To add classic destinations from npm:
diff --git a/src/connections/sources/catalog/libraries/website/javascript/supported-browsers.md b/src/connections/sources/catalog/libraries/website/javascript/supported-browsers.md
index 1c4f8118d3..a0d1eb8f88 100644
--- a/src/connections/sources/catalog/libraries/website/javascript/supported-browsers.md
+++ b/src/connections/sources/catalog/libraries/website/javascript/supported-browsers.md
@@ -22,7 +22,7 @@ The library is regularly tested and is functional with the following browsers:
Segment guarantees support for Internet Explorer 11 and later for Analytics.js. Remember that different bundled (device-mode) destinations might have different compatibility guarantees for their own products. Refer to the vendor's documentation to confirm browser compatibility.
-If you need to support older versions of Internet Explorer or Opera, Segment recommends you to either load a polyfill script in the head as shown [here](https://cdnjs.cloudflare.com/ajax/libs/babel-polyfill/7.7.0/polyfill.min.js){:target="_blank"}, or use the analytics-next npm package and polyfill bundle as shown in [Babel](https://babeljs.io/docs/babel-preset-env){:target="_blank"}.
+If you need to support older versions of Internet Explorer or Opera, Segment recommends you to either load a polyfill script in the head as shown [in this code snippet](https://cdnjs.cloudflare.com/ajax/libs/babel-polyfill/7.7.0/polyfill.min.js){:target="_blank"}, or use the analytics-next npm package and polyfill bundle as shown in [Babel](https://babeljs.io/docs/babel-preset-env){:target="_blank"}.
> info ""
> Classic destinations and Analytics.js support Internet Explorer 11, but some Actions destinations are not yet supported.
diff --git a/src/connections/sources/custom-domain.md b/src/connections/sources/custom-domain.md
index f0fc7e11e0..a4a265190d 100644
--- a/src/connections/sources/custom-domain.md
+++ b/src/connections/sources/custom-domain.md
@@ -54,20 +54,31 @@ To configure Custom Domain:
- **Is the domain name enabled for Content Policy**: Select either Yes or No. You are not required to create a Content Policy prior to requesting Custom Domain.
- **Description**: Enter an optional description for your service request. If you are requesting Custom Domain for multiple workspaces, enter any additional workspace slugs and source names into this field.
4. Segment provides you with a list of nameservers you should add to your DNS. Once you receive the nameservers from Segment, update your DNS.
-5. After you've updated your DNS, Segment verifies that you've made all required updates and then provides you with two custom domains, one for the Tracking API and a second for your CDN.
-6. Update your JavaScript snippet to reference the new subdomains or use the new Tracking API custom domain as your endpoint for server library sources.
+5. After you've updated your DNS, Segment verifies that you've made all required updates and then provides you with two custom domains, one for the Tracking API and a second for your CDN.
+6. Once Custom Domain is enabled for your workspace, the Segment app generates a new JavaScript source code snippet for your Analytics.js sources. Copy and paste this snippet into the header of your website. You can also use the subdomain provided for the Tracking API as the new endpoint for your server library sources.
## FAQ
### What sources can I use with Custom Domain?
Custom Domain was largely developed to support JavaScript sources. It helps with comprehensive collection of first-party data from your website when accessed over any platform (desktop, mobile, and more). You can use the subdomain for all other non-JavaScript sources as well, for consistency, but it will have no impact on data collection for those sources.
-Once Custom Domain is enabled for your workspace, the Segment app generates a new JavaScript source code snippet for you to copy-paste into the header of your website. For non-JavaScript sources, you can use the sub-domain as an endpoint when using the Tracking API.
+### How can I configure non-JavaScript sources to use Custom Domain?
-### Is this a fully-managed solution? What servers or infrastructure do I need to set up on my side for this proxy?
-Yes, Custom Domain is a fully-managed solution.
+For non-Analytics.js sources, you’ll need to update your implementation to use the subdomain as an endpoint when using the Tracking API. For example:
+
+- **Server Sources**: When sending data from server-side implementations, use the `host` configuration parameter to send data to your subdomain instead of the default Segment domain.
+- **Mobile Sources**: When sending data from mobile implementations, use the `apiHost` configuration parameter to send data to your subdomain instead of the default Segment domain.
+
+### Is there a benefit in migrating server-side sources over to client-side with Custom Domain?
+Server-side tracking is generally more reliable than client-side tracking. For example, when tracking data client-side, you might lose data when users might block all cookies or use tools that interfere with network requests leaving the browser.
+
+For business-critical events, Segment recommends server-side data tracking. This approach means that your data is less susceptible to disruptions from client-side variables, which can result in more accurate and reliable tracking.
-You must be able to delegate a DNS subdomain to Segment and add the name servers Segment provides to your DNS.
+
+### Is this a fully-managed solution? What servers or infrastructure do I need to set up on my side for this proxy?
+Yes, Custom Domain is a fully-managed solution. However, you must set up the following infrastructure on your end:
+- Delegate a DNS subdomain to Segment
+- Add the name servers Segment provides to your DNS
First, decide on your subdomain and then delegate it to Segment. Segment then asks you to add a DNS NS record to your DNS with specific values to complete the DNS delegation. From there on, Segment fully manages the infrastructure for serving Analytics.js and ingesting events data through the subdomain.
@@ -83,3 +94,7 @@ Segment also uses AWS Certificate Manager (ACM) to manage and renew certificates
Yes, Custom Domain allows Segment to rename `window.analytics` to a unique name to avoid being blocked by some ad blocking software.
Customers who have access to the Custom Domain feature can rename analytics to `/.js` by choosing an Alias for Analytics.js within the source settings that are available after the workspace is enabled for Custom Domain.
+
+### What happens to the Analytics.js cookies already set on the user's browser prior to a Custom Domain implementation?
+Analytics.js cookies are not lost in the transition to Custom Domain. When users revisit your website, the previous Analytics.js cookies continue to be fetched and added to events, if available.
+
diff --git a/src/connections/sources/plugins/vimeo/index.md b/src/connections/sources/plugins/vimeo/index.md
index 02c3a8442f..49fc1919d7 100644
--- a/src/connections/sources/plugins/vimeo/index.md
+++ b/src/connections/sources/plugins/vimeo/index.md
@@ -8,7 +8,7 @@ With the analytics.js Vimeo Plugin you can easily collect Vimeo player events in
## Getting Started
To use the plugin you must first generate an Access Token in Vimeo. The plugin uses this token to access metadata about the video content being played.
-Vimeo provides documentation outlining this process [here](https://developer.vimeo.com/api/start#getting-started-step1). Make sure you are carefully selecting your access scopes! The plugin only needs to read information about your video(s).
+Vimeo provides documentation outlining this process in the Vimeo [The Basics](https://developer.vimeo.com/api/start#getting-started-step1){:target="_blank"} documentation. Make sure you are carefully selecting your access scopes. The plugin only needs to read information about your video(s).
### 1. Enable
diff --git a/src/connections/sources/visual-tagger.md b/src/connections/sources/visual-tagger.md
index db77c90e0b..0981f65c78 100644
--- a/src/connections/sources/visual-tagger.md
+++ b/src/connections/sources/visual-tagger.md
@@ -105,7 +105,7 @@ When you click on an element on your website, a window appears where you can ent
Segment recommends that you use an "Object Action" format (for example, `Blog Post Clicked`, and use Title Case (capitalize the first letter of each word ) when naming events.
2. **Properties**. Add properties to the event to add contextual information about the action that the user took. Properties are optional, but they are very helpful when you analyze events data later.
- - Use `snake_case` for property names (all lowercase, with spaces between words represented as an underscore “_”). For a guide on event naming best practices, check out the Docs [here](/docs/protocols/tracking-plan/best-practices/#formalize-your-naming-and-collection-standards).
+ - Use `snake_case` for property names (all lowercase, with spaces between words represented as an underscore “_”). For a guide on event naming best practices, check out the Protocols [docs](/docs/protocols/tracking-plan/best-practices/#formalize-your-naming-and-collection-standards).
- Check the [list of properties that are collected by default](/docs/connections/spec/common/) before you add a property.
3. **Advanced**. You can also click the `>` button to manually edit the CSS selector. If you didn't select the right element, you can choose the element on the page again by clicking on the finger button.
diff --git a/src/connections/storage/catalog/amazon-s3/index.md b/src/connections/storage/catalog/amazon-s3/index.md
index 135643060c..ac10597e3b 100644
--- a/src/connections/storage/catalog/amazon-s3/index.md
+++ b/src/connections/storage/catalog/amazon-s3/index.md
@@ -184,9 +184,9 @@ Segment recommends doing this as a best practice. The following policy strictly
## Region
> warning ""
-> The Amazon S3 destination only supports workspaces in the US region. Workspaces outside of the US can't connect to this destination. If you wish to connect to a different region use Segment's new [AWS S3 destination](https://segment.com/docs/connections/storage/catalog/aws-s3/) instead.
+> The Amazon S3 destination only supports workspaces in the US region. Workspaces outside of the US can't connect to this destination. If you wish to connect to a different region use Segment's new [AWS S3 destination](/docs/connections/storage/catalog/aws-s3/) instead.
-Segment infers the region of your bucket when data is copied to it, so you don't need to specify a bucket region in your configuration. If you're using VPC Endpoints for your S3 bucket, make sure you configure the endpoint in the same region as your bucket. You can find more information on this in the AWS S3 docs [here](http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-endpoints-s3.html).
+Segment infers the region of your bucket when data is copied to it, so you don't need to specify a bucket region in your configuration. If you're using VPC Endpoints for your S3 bucket, make sure you configure the endpoint in the same region as your bucket. You can find more information on this in the AWS S3 docs [Gateway endpoints for Amazon S3](http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-endpoints-s3.html){:target="_blank"}.
## Custom Path Prefix
@@ -197,9 +197,9 @@ To use a custom key prefix for the files in your bucket, append the path to the
Segment recommends using the [AWS CLI](http://aws.amazon.com/cli/) and writing a short script to download specific days, one at a time. The AWS CLI is faster than [s3cmd](http://s3tools.org/s3cmd) because it downloads files in parallel.
> info ""
-> S3 transparently decompresses the files for most clients. To access the raw gzipped data you can programmatically download the file using [the AWS SDK](http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html) and setting `ResponseContentEncoding: none`. This functionality isn't available in the AWS CLI). You can also manually remove the metadata on the file (`Content-Type: text/plain` and `Content-Encoding: gzip`) through the AWS interface, which allows you to download the file as gzipped.
+> S3 transparently decompresses the files for most clients. To access the raw gzipped data you can programmatically download the file using [the AWS SDK](http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html){:target="_blank"} and setting `ResponseContentEncoding: none`. This functionality isn't available in the AWS CLI. You can also manually remove the metadata on the file (`Content-Type: text/plain` and `Content-Encoding: gzip`) through the AWS interface, which allows you to download the file as gzipped.
-To configure the AWS CLI, see Amazon's documentation [here](http://docs.aws.amazon.com/cli/latest/userguide/installing.html). For linux systems, run the following command:
+To configure the AWS CLI, see Amazon's [Get started with the CLI](http://docs.aws.amazon.com/cli/latest/userguide/installing.html){:target="_blank"} documentation. For Linux systems, run the following command:
```bash
diff --git a/src/connections/storage/catalog/data-lakes/index.md b/src/connections/storage/catalog/data-lakes/index.md
index 82942831a8..66cd3b5540 100644
--- a/src/connections/storage/catalog/data-lakes/index.md
+++ b/src/connections/storage/catalog/data-lakes/index.md
@@ -73,7 +73,7 @@ You will see event data and [sync reports](/docs/connections/storage/data-lakes/
To receive sync failure alerts by email, subscribe to the `Storage Destination Sync Failed` activity email notification within the **App Settings > User Preferences > [Notification Settings](https://app.segment.com/goto-my-workspace/settings/notifications){:target="_blank”}**.
-`Sync Failed` emails are sent on the 1st, 5th, and 20th sync failure. Learn more about the types of errors which can cause sync failures [here](/docs/connections/storage/data-lakes/sync-reports/#sync-errors).
+`Sync Failed` emails are sent on the 1st, 5th, and 20th sync failure. Learn more about the types of errors which can cause sync failures in Segment's [Sync errors](/docs/connections/storage/data-lakes/sync-reports/#sync-errors) docs.
### (Optional) Step 4 - Replay historical data
diff --git a/src/connections/storage/warehouses/index.md b/src/connections/storage/warehouses/index.md
index 59fab788e1..d4aeb540e7 100644
--- a/src/connections/storage/warehouses/index.md
+++ b/src/connections/storage/warehouses/index.md
@@ -23,7 +23,7 @@ Examples of data warehouses include Amazon Redshift, Google BigQuery, and Postgr
> info "Looking for the Warehouse Schemas docs?"
-> They've moved! Check them out [here](schema/).
+> They've moved: [Warehouse Schemas](/docs/connections/storage/warehouses/schema).
{% include components/reference-button.html href="https://segment.com/academy/intro/when-to-use-sql-for-analysis/?referrer=docs" icon="media/academy.svg" title="Analytics Academy: When to use SQL for analysis" description="When your existing analytics tools can't answer your questions, it's time to level-up and use SQL for analysis." %}
diff --git a/src/engage/audiences/account-audiences.md b/src/engage/audiences/account-audiences.md
index 4832548f82..6c5b49dcbc 100644
--- a/src/engage/audiences/account-audiences.md
+++ b/src/engage/audiences/account-audiences.md
@@ -56,7 +56,7 @@ The three types of user-level conditions are:
## Account-level computed and SQL traits
-Workspaces with access to account-level audiences can create account-level [computed](/docs/engage/audiences/computed-traits/) and [SQL](/docs/engage/audiences/sql-traits/) traits. All user-level computed trait types are supported (see [here](/docs/engage/audiences/computed-traits/#types-of-computed-traits) for a full list). Account-level computed traits operate on the set of events triggered by all users associated with a given account.
+Workspaces with access to account-level audiences can create account-level [computed](/docs/engage/audiences/computed-traits/) and [SQL](/docs/engage/audiences/sql-traits/) traits. All user-level computed trait types are supported (see the [Types of computed traits](/docs/engage/audiences/computed-traits/#types-of-computed-traits) docs for a full list). Account-level computed traits operate on the set of events triggered by all users associated with a given account.
Use-cases for account-level computed traits include:
- Calculate the number of times users associated with an account logged in during the past month
diff --git a/src/engage/campaigns/mobile-push/index.md b/src/engage/campaigns/mobile-push/index.md
index 7bea70cce8..888283c5e3 100644
--- a/src/engage/campaigns/mobile-push/index.md
+++ b/src/engage/campaigns/mobile-push/index.md
@@ -209,7 +209,7 @@ The previous steps are required. For configuration options, including subscripti
### Instructions for Android
-Now that you've integrated Analytics for Kotlin, follow these steps to add the Engage Plugin for Android:
+Now that you've integrated Analytics-Kotlin, follow these steps to add the Engage Plugin for Android:
1. Add the following to your Gradle dependencies:
diff --git a/src/getting-started/02-simple-install.md b/src/getting-started/02-simple-install.md
index d6d7794f27..bb23f6898a 100644
--- a/src/getting-started/02-simple-install.md
+++ b/src/getting-started/02-simple-install.md
@@ -160,7 +160,7 @@ Once you add a few `track` calls, you're done with setting up Segment. You succe
### Step 1: Install the SDK
-To install Analytics for iOS, Segment recommends you to use [Cocoapods](http://cocoapods.org), because it allows you to create a build with specific bundled destinations, and because it makes it simple to install and upgrade.
+To install Analytics-iOS, Segment recommends you to use [CocoaPods](http://cocoapods.org){:target="_blank"}, because it allows you to create a build with specific bundled destinations, and because it makes it simple to install and upgrade.
1) Add the `Analytics` dependency to your `Podfile` by adding the following line:
diff --git a/src/guides/how-to-guides/cross-channel-tracking.md b/src/guides/how-to-guides/cross-channel-tracking.md
index 5124a0f85a..1710577cf0 100644
--- a/src/guides/how-to-guides/cross-channel-tracking.md
+++ b/src/guides/how-to-guides/cross-channel-tracking.md
@@ -91,7 +91,7 @@ UTM parameters are types of query strings added to the end of a URL. When clicke

-UTM parameters are only used when linking to your site from outside of your domain. When a visitor arrives to your site using a link containing UTM parameters, Segment's client-side analytics.js library will automatically parse the URL's query strings, and store them within the `context` object as outlined [here](/docs/connections/spec/common/#context-fields-automatically-collected). These parameters do not persist to subsequent calls unless you pass them explicitly.
+UTM parameters are only used when linking to your site from outside of your domain. When a visitor arrives to your site using a link containing UTM parameters, Segment's client-side analytics.js library will automatically parse the URL's query strings, and store them within the `context` object as outlined in the [Spec: Common](/docs/connections/spec/common/#context-fields-automatically-collected) docs. These parameters do not persist to subsequent calls unless you pass them explicitly.
UTM parameters contain three essential components:
diff --git a/src/guides/usage-and-billing/startup-program.md b/src/guides/usage-and-billing/startup-program.md
index 3d648f818b..1a0eff242d 100644
--- a/src/guides/usage-and-billing/startup-program.md
+++ b/src/guides/usage-and-billing/startup-program.md
@@ -16,7 +16,7 @@ The Segment Startup Program includes three components:
- Partner **Startup Deals** - Segment partners with other technology companies that offer valuable tools for startups to offer exclusive deals and promotions from marketing, data warehouse, and analytics tools.
- **Startup Resources** - Segment offers learning materials on topics like analytics, product-market fit, and more for founders to become experts on data analytics and making the most of Segment's technology.
-Interested companies can apply [here](http://segment.com/industry/startups).
+Interested companies can apply on the [Startup Program](http://segment.com/industry/startups){:target="_blank”} site.
*Can vary based on affiliated accelerator and VC partners.
@@ -45,7 +45,7 @@ If you go over the total credit applied, you will be charged for the additional
Once you've used your total credits, you might be eligible to renew for another year at a discounted rate. Otherwise, we can talk about options for upgrading your plan.
**How do I get the startup partner deals?**
-Once you've been accepted to the Segment Startup Program, you can apply for the partner deals using [this form](http://bit.ly/segment-deal-redeem). (You can view a list of the available deals [here](https://bit.ly/segment-partner-deals).)
+Once you've been accepted to the Segment Startup Program, you can apply for the partner deals using [this Airtable form](http://bit.ly/segment-deal-redeem){:target="_blank”}. (You can view a list of the available deals [in a section of the Airtable form](https://bit.ly/segment-partner-deals){:target="_blank”}.)
**How do I know if my accelerator/incubator/VC firm has a relationship with Segment?**
Ask your program manager to see if they participate in the Segment Startup Program. If they do not, you can request that they [apply to become a partner](https://airtable.com/shr84MIvVo4k8xbaO){:target="_blank"}.
diff --git a/src/guides/usage-and-billing/twilio-developer-plan.md b/src/guides/usage-and-billing/twilio-developer-plan.md
index 8817a5f465..01fdea35f5 100644
--- a/src/guides/usage-and-billing/twilio-developer-plan.md
+++ b/src/guides/usage-and-billing/twilio-developer-plan.md
@@ -22,7 +22,7 @@ Need more destinations or more MTUs? Upgrade to the [Team Plan](https://segment.
## How do I qualify for the Twilio Developer Plan?
-You must have an active Twilio account to sign up for the Twilio Developer Plan. Active Twilio users can sign up for the Twilio Developer Plan [here](https://www.segment.com/twilio-developer-plan).
+You must have an active Twilio account to sign up for the Twilio Developer Plan. Active Twilio users can sign up for the Twilio Developer Plan [on Segment's website](https://www.segment.com/twilio-developer-plan){:target="_blank”}.
## What is a data source?
@@ -51,8 +51,8 @@ For more information about Monthly Tracked Users, see [What is an MTU?](/docs/gu
If you exceed the 10,000 MTU limit once in a 6-month period, Segment locks access to your account, but data still flows through Segment. To unlock your account, you can choose from these options:
- **Option 1**: Wait for a full billing cycle (1 month) to go by without any overages. Segment unlocks your account if the MTU numbers reduce on their own.
-- **Option 2**: Upgrade to the [Team plan](https://segment.com/pricing/). This starts a 2-week free trial that gives you 14 days to fix your implementation to decrease the traffic.
-- **Option 3:** Upgrade to a [Business plan](https://segment.com/pricing/). Business plans are custom built for customers and typically have higher MTU limits than Team plans. [Click here](https://segment.com/demo) to schedule time with a Segment representative to see if a Business plan is a good fit for you.
+- **Option 2**: Upgrade to the [Team plan](https://segment.com/pricing/){:target="_blank”}. This starts a 2-week free trial that gives you 14 days to fix your implementation to decrease the traffic.
+- **Option 3:** Upgrade to a [Business plan](https://segment.com/pricing/){:target="_blank”}. Business plans are custom built for customers and typically have higher MTU limits than Team plans. [Schedule time with a Segment representative](https://segment.com/demo){:target="_blank”} to see if a Business plan is a good fit for you.
If you exceed the 10,000 MTU limit twice in a 6-month period, Segment locks access to your account and also stops sending and receiving data. You can unlock your account by following option 2 or 3 above to upgrade your plan.
diff --git a/src/partners/destinations/index.md b/src/partners/destinations/index.md
index ffc007b34b..de47dd7d8d 100644
--- a/src/partners/destinations/index.md
+++ b/src/partners/destinations/index.md
@@ -17,7 +17,7 @@ Sign up for the [Segment Select Partner Program](https://segment.com/partners/in
Before you begin development, consider the following points:
-1. Decide the type of destination you want to build. Developer Center supports building cloud-mode and device-mode web destinations. Segment recommends building a cloud-mode destination, because data is sent to Segment prior to going to your API, so customers can take advantage of Segment features like filters, transformations, and replays. You can learn more [here](https://segment.com/docs/connections/destinations/#connection-modes). Developer Center does not support building device-mode mobile destinations. Segment recommends building a plugin to get information like session ID from the device.
+1. Decide the type of destination you want to build. Developer Center supports building cloud-mode and device-mode web destinations. Segment recommends building a cloud-mode destination, because data is sent to Segment prior to going to your API, so customers can take advantage of Segment features like filters, transformations, and replays. You can learn more in the [Connection Modes](/docs/connections/destinations/#connection-modes) documentation. Developer Center does not support building device-mode mobile destinations. Segment recommends building a plugin to get information like session ID from the device.
2. Spec out the integration. If you want some guidance, you can use this [template](https://docs.google.com/document/d/1dIJxYge9N700U9Nhawapy25WMD8pUuey72S5qo3uejA/edit#heading=h.92w309fjzhti){:target="_blank"}, which will prompt you to think about the connection mode of the destination, the method of authentication, the settings, and the Actions and default Field Mappings that you want to build.
diff --git a/src/partners/direct-destination.md b/src/partners/direct-destination.md
index 4c2809f5e6..84ffecf716 100644
--- a/src/partners/direct-destination.md
+++ b/src/partners/direct-destination.md
@@ -115,7 +115,7 @@ Upon receiving data, your endpoint should reply with one of the following status
| `401` | The client's API key is malformed, has expired, or is otherwise no longer valid. |
| `403` | The client's API key is valid, but has been rejected due to inadequate permissions. |
| `500` | If you encounter an internal error when processing the message, reply with this code. (Hopefully you won't have to send too many of these.) |
-| `501` | If Segment sends you an [API call type](https://segment.com/docs/connections/spec/#api-calls) (indicated by the `type` property included on all messages) you don't support, reply with this code. Read more about the API call types Segment supports [here](https://segment.com/docs/connections/spec/#api-calls). |
+| `501` | If Segment sends you an [API call type](/docs/connections/spec/#api-calls) (indicated by the `type` property included on all messages) you don't support, reply with this code. Read more about the API call types Segment supports [in the Spec](docs/connections/spec/#api-calls) docs. |
| `503` | Send Segment this code when your endpoint is temporarily down for maintenance or otherwise not accepting messages. This helps Segment avoid dropping users' messages during your downtime. |
#### Response body
@@ -164,7 +164,7 @@ To test your Destination in the Catalog, click the "View in workspace" button in
From here, click "Configure App", select a Source, and click "Confirm Source". You can now configure your destination by setting the "API Key", then clicking the toggle to enable the destination.
-Next you can click the "Event Tester" tab to send data to your destination. Here you can see what requests Segment sends to your destination and introspect the response you are returning. Learn more about the event tester [here](/docs/guides/best-practices/how-do-I-test-my-connections/).
+Next you can click the "Event Tester" tab to send data to your destination. Here you can see what requests Segment sends to your destination and introspect the response you are returning. Learn more about the event tester in the [Event Tester docs](/docs/connections/test-connections/).
Now you can use the JavaScript SDK in a browser to generate real analytics events.
diff --git a/src/partners/faqs.md b/src/partners/faqs.md
index cb990d8eb8..c28f688ae7 100644
--- a/src/partners/faqs.md
+++ b/src/partners/faqs.md
@@ -22,7 +22,7 @@ For unknown users, Segment will handle generating a unique `anonymousId` using o
Segment handles cacheing these values on our mobile SDKs and client-side analytics.js library and sending the values on subsequent calls. Our server-side libraries rely on the customer creating either the `anonymousId` or `userId` and passing this in on each call.
-Read more about our unique ID's [here](https://segment.com/blog/a-brief-history-of-the-uuid/).
+Read more about unique IDs on Segment's blog: [A brief history of the UUID](https://segment.com/blog/a-brief-history-of-the-uuid/){:target="_blank”}.
### Do you have semantic events?
@@ -38,13 +38,13 @@ No. Since Segment queues events, Segment cannot guarantee the order in which the
### Does Segment de-dupe messages?
-Yes! Segment de-dupes messages by `messageId`.
+Yes, Segment de-dupes messages by `messageId`.
Segment maintains a sliding window of all `messageId`s received for each source, only allowing `messageId`s through that do not already appear within the window.
Segment guarantees this window to be at least 24 hours of messages (meaning any message sent twice within 24 hours will be de-duped), but in practice, this window is significantly larger(currently sitting at around 170 days).
-You can read more [here](https://segment.com/blog/exactly-once-delivery/).
+You can read more on the Segment blog: [Delivering billions of messages exactly once](https://segment.com/blog/exactly-once-delivery/){:target="_blank”}.
### What is a replay?
@@ -62,9 +62,9 @@ Be sure to let us know if you are able to accept replays and what your rate limi
Segment provides excellent data deliverability by employing API layer scalability and durability, data backup and replay, partner API monitoring, and library and integration cloud retries. Segment's API processes 170B+ billion calls per month across over a billion of monthly tracked users, is rate performant (avg. load 100,000 msg/sec), fully automated and scalable, can tolerate massive data spikes.
-Segment monitors hundreds of partner APIs for 500s, success rate, and end-to-end latency to help our customers proactively achieve the best data deliverability possible.
+Segment monitors hundreds of partner APIs for 500s, success rate, and end-to-end latency to help customers proactively achieve the best data deliverability possible.
-You can subscribe to updates [here](https://status.segment.com/).
+You can subscribe to updates on [status.segment.com](https://status.segment.com/){:target="_blank”}.
### Does Segment retry data?
diff --git a/src/partners/index.md b/src/partners/index.md
index f5a8d21905..3475cd659c 100644
--- a/src/partners/index.md
+++ b/src/partners/index.md
@@ -38,7 +38,7 @@ To develop your integration in the Developer Center, complete the following step
### Become a Segment Partner
-Sign up for the [Segment Select Partner Program](https://segment.com/partners/integration/). During the sign-up process, you’ll agree to the [Segment Partner Program Agreement](https://segment.com/legal/partnersagreement/) and [Privacy Policy](https://segment.com/legal/privacy/).
+Sign up for the [Segment Select Partner Program](https://segment.com/partners/integration/){:target="_blank”}. During the sign-up process, you’ll agree to the [Segment Partner Program Agreement](https://segment.com/legal/partnersagreement/){:target="_blank”} and [Privacy Policy](https://segment.com/legal/privacy/){:target="_blank”}.
### Understand Segment's conceptual model and Spec
@@ -48,7 +48,7 @@ The [Segment Spec](/docs/connections/spec) provides best practices for the speci
### Follow Segment's security guidance
-Security for both customers and partners is a priority at Segment. Before you start building on the Developer Center, review the [Acceptable Use Policy](https://segment.com/legal/acceptable-use-policy/) and ensure you're following these guidelines:
+Security for both customers and partners is a priority at Segment. Before you start building on the Developer Center, review the [Acceptable Use Policy](https://segment.com/legal/acceptable-use-policy/){:target="_blank”} and ensure you're following these guidelines:
- Follow a secure software-development lifecycle, which enables you to create code that is safe for Segment customers and their end users, and that enables you to maintain and raise the security of that code over time
- If you or your code comes into contact with Segment customer- or end-user data for any reason, protect it with commercially reasonable methods throughout its data lifecycle, including creation, handling, transporting, storing and destruction.
@@ -57,7 +57,7 @@ Security for both customers and partners is a priority at Segment. Before you st
### Request access to the Segment Developer Center
-Segment provides access to the developer on request. [Click here](https://segment.com/partners/developer-center/){:target="_blank"} to request access. A Segment account is required for this step.
+Segment provides access to the Developer Portal on request. Open the Developer Portal page and click [Sign up](https://segment.com/partners/developer-center/){:target="_blank"} to request access. A Segment account is required for this step.
Segment receives a large volume of requests so please include a valid company website and email address, answer all questions with details about integration's use case as well as highlighting specific customer requests to expedite the approval process.
@@ -79,11 +79,11 @@ Before users can go hands on with your integration, a review by Segment engineer
#### Destinations
-To submit your destination for review, follow the destination-specific instructions [here](/docs/partners/destinations#submit-a-pull-request).
+To submit your destination for review, follow the destination-specific instructions in the [Submit a pull request](/docs/partners/destinations#submit-a-pull-request) docs.
#### Sources
-To submit your source for review, complete the steps described in the Developer Portal, and click **Submit for review**.
+To submit your source for review, complete the steps described in the Developer Portal and click **Submit for review**.
{% comment %}
## Provide integration metadata for the catalog
diff --git a/src/partners/sources.md b/src/partners/sources.md
index a3d87ac813..1c7d6599d9 100644
--- a/src/partners/sources.md
+++ b/src/partners/sources.md
@@ -52,7 +52,7 @@ Here are the five most common options:
- `Sentence case` — Account created
-You can read more about Segment's recommended naming conventions [here](https://segment.com/academy/collecting-data/naming-conventions-for-clean-data/){:target="_blank"}.
+You can read more about Segment's recommended naming conventions in the Segment Academy post [Naming Conventions: Why You Need Them for Clean Data](https://segment.com/academy/collecting-data/naming-conventions-for-clean-data/){:target="_blank"}.
### `userId`
@@ -101,7 +101,7 @@ The write key is required in the header of every call to identify the customer w
**Rate limits and batching**
There is no hard rate limit at which point Segment will drop your data. However, to avoid processing delays, Segment asks partners to send requests at a maximum rate of 50 requests per second.
-If you want to batch requests to the HTTP endpoint, refer to the batching documentation [here](/docs/connections/sources/catalog/libraries/server/http-api/#import). The suggested maximum rate includes any batch requests.
+If you want to batch requests to the HTTP endpoint, refer to the HTTP API's [batching documentation](/docs/connections/sources/catalog/libraries/server/http-api/#import). The suggested maximum rate includes any batch requests.
## Regional Segment
diff --git a/src/partners/subscriptions/build-webhook.md b/src/partners/subscriptions/build-webhook.md
index 65fe1ba13d..19573653be 100644
--- a/src/partners/subscriptions/build-webhook.md
+++ b/src/partners/subscriptions/build-webhook.md
@@ -14,7 +14,7 @@ Review the steps outlined in the [Developer Center Overview](/docs/partners). Th
1. Understand Segment's [Conceptual Model](/docs/partners/conceptual-model) and [Spec](/docs/connections/spec).
2. Follow Segment's security guidance.
-3. Request [access to the Segment Developer Center](https://segment.com/partners/developer-center/).
+3. Request [access to the Segment Developer Center](https://segment.com/partners/developer-center/){:target="_blank”}.
4. Create an App.
5. Build and test your Component(s).
6. Publish documentation.
@@ -124,7 +124,7 @@ Upon receiving data, your endpoint should reply with one of the following status
| `401` | The client's API key is malformed, has expired, or is otherwise no longer valid. |
| `403` | The client's API key is valid, but has been rejected due to inadequate permissions. |
| `500` | If you encounter an internal error when processing the message, reply with this code. (Hopefully you won't have to send too many of these.) |
-| `501` | If Segment sends you an [API call type](https://segment.com/docs/connections/spec/#api-calls) (indicated by the `type` property included on all messages) you don't support, reply with this code. Read more about the API call types Segment supports [here](https://segment.com/docs/connections/spec/#api-calls). |
+| `501` | If Segment sends you an [API call type](/docs/connections/spec/#api-calls) (indicated by the `type` property included on all messages) you don't support, reply with this code. Read more about the API call types Segment supports in the [Segment Spec documentation](/docs/connections/spec/#api-calls). |
| `503` | Send Segment this code when your endpoint is temporarily down for maintenance or otherwise not accepting messages. This helps Segment avoid dropping users' messages during your downtime. |
#### Response Body
@@ -178,7 +178,7 @@ To test your Destination in the Catalog, click the "Test" tab in the Developer C
From here, click "Configure App", select a Source, and click "Confirm Source". You can now configure your destination by setting the "API Key", then clicking the toggle to enable the destination.
-Next you can click the "Event Tester" tab to send data to your destination. Here you can see what requests Segment sends to your destination and introspect the response you are returning. Learn more about the event tester [here](/docs/guides/best-practices/how-do-I-test-my-connections/).
+Next you can click the "Event Tester" tab to send data to your destination. Here you can see what requests Segment sends to your destination and introspect the response you are returning. Learn more about the event tester in the [Event Tester](/docs/connections/test-connections/) docs.
Now you can use the JavaScript SDK in a browser to generate real analytics events.
diff --git a/src/partners/subscriptions/index.md b/src/partners/subscriptions/index.md
index b95c5ef23d..13932dcfaa 100644
--- a/src/partners/subscriptions/index.md
+++ b/src/partners/subscriptions/index.md
@@ -15,7 +15,7 @@ Review the steps outlined in the [Developer Center Overview](/docs/partners). Th
1. Understand Segment's [Conceptual Model](/docs/partners/conceptual-model) and [Spec](/docs/connections/spec).
2. Follow Segment's security guidance.
-3. Request [access to the Segment Developer Center](https://segment.com/partners/developer-center/).
+3. Request [access to the Segment Developer Center](https://segment.com/partners/developer-center/)/docs/connections/test-connections/.
4. Create an App.
5. Build and test your Component(s).
6. Publish documentation.
@@ -27,4 +27,4 @@ Review the steps outlined in the [Developer Center Overview](/docs/partners). Th
> note ""
> **NOTE:** On July 31, 2021 support for building Subscription Functions was removed from Developer Center. You may continue building [Subscription Webhooks](/docs/partners/subscriptions/build-webhook) in place of Subscription Functions. Work has begun on Developer Center 2.0 which will offer a more holistic approach to building on Segment. If you're interested in joining the beta in the coming months, please fill out [this form](https://airtable.com/shrvZzQ6NTTwsc6rQ){:target="_blank"}!
-[Subscription Webhooks](/docs/partners/subscriptions/build-webhook) allow you to build a new HTTP service that receives Webhook POSTs from Segment. Read more in-depth technical details about building webhooks [here](/docs/partners/subscriptions/build-webhook).
+[Subscription Webhooks](/docs/partners/subscriptions/build-webhook) allow you to build a new HTTP service that receives Webhook POSTs from Segment. Read more in-depth technical details about building webhooks in the [Subscription Webhooks](/docs/partners/subscriptions/build-webhook) docs.
diff --git a/src/protocols/apis-and-extensions/typewriter.md b/src/protocols/apis-and-extensions/typewriter.md
index 07541dd657..d2899545f8 100644
--- a/src/protocols/apis-and-extensions/typewriter.md
+++ b/src/protocols/apis-and-extensions/typewriter.md
@@ -4,9 +4,9 @@ redirect_from: '/protocols/typewriter/'
---
> warning ""
-> Typewriter for analytics.js and analytics-node will receive no new features and only critical maintenance updates from Segment. Typewriter for other libraries and SDKs are not actively maintained by Segment. Typewriter is available on [Github](https://github.com/segmentio/typewriter/){:target="_blank”} under the MIT license for the open-source community to fork and contribute.
+> Typewriter for analytics.js and analytics-node will receive no new features and only critical maintenance updates from Segment. Typewriter for other libraries and SDKs are not actively maintained by Segment. Typewriter is available on [GitHub](https://github.com/segmentio/typewriter/){:target="_blank”} under the MIT license for the open-source community to fork and contribute.
-[Typewriter](https://github.com/segmentio/typewriter) is a tool for generating strongly-typed Segment analytics libraries based on your pre-defined [Tracking Plan](/docs/protocols/tracking-plan) spec.
+[Typewriter](https://github.com/segmentio/typewriter){:target="_blank”} is a tool for generating strongly-typed Segment analytics libraries based on your pre-defined [Tracking Plan](/docs/protocols/tracking-plan) spec.
At a high-level, Typewriter can take an event from your Tracking Plan like this `"Order Completed"` event:
@@ -60,13 +60,13 @@ To get started, check out one of the quickstart guides below:
- [Swift Quickstart](#swift-quickstart)
> info ""
-> For use with the Analytics-iOS and Analytics-Android SDK, use [Typewriter v7](/docs/protocols/apis-and-extensions/typewriter-v7).
+> For use with the Analytics-iOS and Analytics-Android SDK, use [Typewriter v7](/docs/protocols/apis-and-extensions/typewriter-v7){:target="_blank”}.
-Have feedback on Typewriter? Consider opening a [GitHub issue here](https://github.com/segmentio/typewriter/issues/new).
+Have feedback on Typewriter? Consider opening a [GitHub Issue in the @segmentio/typewriter](https://github.com/segmentio/typewriter/issues/new){:target="_blank”} repository.
## Prerequisites
-Typewriter is built using [Node.js](https://nodejs.org/en/), and requires node >= 14.x
+Typewriter is built using [Node.js](https://nodejs.org/en/){:target="_blank”}, and requires node >= 14.x
You can check if you have Node and NPM installed by running the following commands in your command-line window:
@@ -75,7 +75,7 @@ $ node --version
v14.x
```
-If you don't have these, [you'll need to install `node`](https://nodejs.org/en/download/package-manager). Installing `node` also installs `npm` and `npx` for you. If you're on macOS, you can install it with [Homebrew](https://brew.sh/):
+If you don't have these, [you'll need to install `node`](https://nodejs.org/en/download/package-manager){:target="_blank”}. Installing `node` also installs `npm` and `npx` for you. If you're on macOS, you can install it with [Homebrew](https://brew.sh/){:target="_blank”}:
```sh
$ brew install node
@@ -89,7 +89,7 @@ To get started with Typewriter in your browser:
1. Make sure you have `node` installed using the instructions in the [prerequisites](#prerequisites) above.
2. Install `analytics.js` in your app. There are two methods.
- **Snippet method (most common)**: Paste the snippet in the[`Step 1: Copy the Snippet`](/docs/connections/sources/catalog/libraries/website/javascript/quickstart/#step-2-copy-the-segment-snippet) from the [`analytics.js` Quickstart Guide](/docs/connections/sources/catalog/libraries/website/javascript/quickstart/).
- - **NPM method**: Load analytics.js with the npm library. Learn more about using the npm method [here](https://github.com/segmentio/analytics-next/tree/master/packages/browser#readme).
+ - **NPM method**: Load analytics.js with the npm library. Learn more about using the npm method in the [@segmentio/analytics-next](https://github.com/segmentio/analytics-next/tree/master/packages/browser#readme){:target="_blank”} repository.
3. Once you've got `analytics.js` installed, add Typewriter as a developer dependency in your project:
@@ -191,7 +191,7 @@ To get started with Node.js:
> info ""
> Run `npx typewriter` to regenerate your Typewriter client. You need to do this each time you update your Tracking Plan.
-Typewriter wraps your analytics calls in an [ES6 `Proxy`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy), which helps protect your application from crashing if you make analytics calls with a generated function that doesn't exist. For example, if an `Order Completed` event didn't exist in your Tracking Plan in the first example above, then your app would crash with a `TypeError: typewriter.orderCompleted is not a function`. However, since `typewriter` dynamically proxies the underlying function calls, it can detect if a function does not exist, and handle it for you. Typewriter logs a warning message, then fires an `Unknown Analytics Call Fired` event into your source. This helps to prevent regressions when you migrate JavaScript projects to Typewriter in bulk. Keep in mind that proxying doesn't work with named exports.
+Typewriter wraps your analytics calls in an [ES6 `Proxy`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy){:target="_blank”}, which helps protect your application from crashing if you make analytics calls with a generated function that doesn't exist. For example, if an `Order Completed` event didn't exist in your Tracking Plan in the first example above, then your app would crash with a `TypeError: typewriter.orderCompleted is not a function`. However, since `typewriter` dynamically proxies the underlying function calls, it can detect if a function does not exist, and handle it for you. Typewriter logs a warning message, then fires an `Unknown Analytics Call Fired` event into your source. This helps to prevent regressions when you migrate JavaScript projects to Typewriter in bulk. Keep in mind that proxying doesn't work with named exports.
## Swift Quickstart
@@ -332,13 +332,13 @@ $ npx typewriter
## API Token Configuration
-Typewriter requires a Segment API token to fetch Tracking Plans from the [Segment Public API](https://docs.segmentapis.com/).
+Typewriter requires a Segment API token to fetch Tracking Plans from the [Segment Public API](https://docs.segmentapis.com/){:target="_blank”}.
You must be a workspace owner to create Segment API tokens.
To create an API token:
-1. Click on the **Tokens** tab on the [Access Management](https://app.segment.com/goto-my-workspace/settings/access-management) page and click **Create Token**.
+1. Click on the **Tokens** tab on the [Access Management](https://app.segment.com/goto-my-workspace/settings/access-management){:target="_blank”} page and click **Create Token**.
2. Choose Segment's Public API.
3. Add a description for the token and assign access. If you choose *Workspace Member*, you only need to select **Tracking Plan Read-Only** for the Resource Role, as Typewriter only needs the *Tracking Plan Read-Only* role.
4. Click **Create**.
@@ -363,19 +363,19 @@ To make the most of Typewriter, Segment recommends installing a few extensions:
**JavaScript**
-Typewriter clients include function documentation adhering to the [JSDoc](https://jsdoc.app/) specification. Install the relevant extension below for JSDoc support in your editor:
+Typewriter clients include function documentation adhering to the [JSDoc](https://jsdoc.app/){:target="_blank”} specification. Install the relevant extension below for JSDoc support in your editor:
- *VSCode*: Supports JSDoc out-of-the-box.
-- *Atom*: Install the official [atom-ide-ui](https://atom.io/packages/atom-ide-ui) and [ide-typescript](https://atom.io/packages/ide-typescript) plugins (the latter provides JavaScript support).
-- *Sublime Text*: Install [`tern_for_sublime`](https://packagecontrol.io/packages/tern_for_sublime). And then [follow this guide's advice](https://medium.com/@nicklee1/configuring-sublime-text-3-for-modern-es6-js-projects-6f3fd69e95de) on configuring Tern.
+- *Atom*: Install the official [atom-ide-ui](https://atom.io/packages/atom-ide-ui){:target="_blank”} and [ide-typescript](https://atom.io/packages/ide-typescript){:target="_blank”} plugins (the latter provides JavaScript support).
+- *Sublime Text*: Install [`tern_for_sublime`](https://packagecontrol.io/packages/tern_for_sublime){:target="_blank”}. And then [follow this guide's advice](https://medium.com/@nicklee1/configuring-sublime-text-3-for-modern-es6-js-projects-6f3fd69e95de){:target="_blank”} on configuring Tern.
**TypeScript**
For intellisense in TypeScript clients, install the relevant extension below for TypeScript support in your editor. If your project is a mix between JavaScript and TypeScript, then you should also install the plugins in the JavaScript section above so that your editor will also support JSDoc intellisense.
- *VSCode*: Supports TypeScript out-of-the-box.
-- *Atom*: Install the official [atom-ide-ui](https://atom.io/packages/atom-ide-ui) and [ide-typescript](https://atom.io/packages/ide-typescript) plugins.
-- *Sublime Text*: Install the [TypeScript](https://packagecontrol.io/packages/TypeScript) plugin from [Package Control](https://packagecontrol.io/installation).
+- *Atom*: Install the official [atom-ide-ui](https://atom.io/packages/atom-ide-ui){:target="_blank”} and [ide-typescript](https://atom.io/packages/ide-typescript){:target="_blank”} plugins.
+- *Sublime Text*: Install the [TypeScript](https://packagecontrol.io/packages/TypeScript){:target="_blank”} plugin from [Package Control](https://packagecontrol.io/installation){:target="_blank”}.
**iOS**
@@ -454,7 +454,7 @@ scripts:
token: echo "OIEGO$*hf83hfh034fnosnfiOEfowienfownfnoweunfoiwenf..."
```
-To give a real example, Segment stores secrets in [`segmentio/chamber`](http://github.com/segmentio/chamber) which is backed by [AWS Parameter Store](https://aws.amazon.com/blogs/mt/the-right-way-to-store-secrets-using-parameter-store/){:target="_blank"}. Providing access to a token in `chamber` looks like this:
+To give a real example, Segment stores secrets in [`segmentio/chamber`](http://github.com/segmentio/chamber){:target="_blank”} which is backed by [AWS Parameter Store](https://aws.amazon.com/blogs/mt/the-right-way-to-store-secrets-using-parameter-store/){:target="_blank"}. Providing access to a token in `chamber` looks like this:
```yaml
scripts:
@@ -467,7 +467,7 @@ To learn more about the `typewriter.yml` configuration format, see the [Configur
In your `typewriter.yml`, you can configure a script (`scripts.after`) that fires after generating a Typewriter client. You can use this to apply your team's style guide to any of Typewriter's auto-generated files.
-For example, if you want to apply your [`prettier`](https://prettier.io/) formatting to `plan.json` (the local snapshot of your Tracking Plan), you can use an `after` script like this:
+For example, if you want to apply your [`prettier`](https://prettier.io/){:target="_blank”} formatting to `plan.json` (the local snapshot of your Tracking Plan), you can use an `after` script like this:
```yaml
scripts:
@@ -507,7 +507,7 @@ $ npx typewriter development
$ npx typewriter production
```
> note ""
-> Not all languages support run-time validation. Currently, `analytics.js` and `analytics-node` support it using [AJV](https://github.com/epoberezkin/ajv) (both for JavaScript and TypeScript projects) while `analytics-ios` and `analytics-android` do not yet support run-time validation. Typewriter also doesn't support run-time validation using Common JSON Schema. For languages that don't support run-time validation, the development and production clients are identical.
+> Not all languages support run-time validation. Currently, `analytics.js` and `analytics-node` support it using [AJV](https://github.com/epoberezkin/ajv){:target="_blank”} (both for JavaScript and TypeScript projects) while `analytics-ios` and `analytics-android` do not yet support run-time validation. Typewriter also doesn't support run-time validation using Common JSON Schema. For languages that don't support run-time validation, the development and production clients are identical.
Segment recommends you to use a development build when testing your application locally, or when running tests. Segment generally recommends _against_ using a development build in production, since this includes a full copy of your Tracking Plan which can increase the size of the application.
@@ -572,8 +572,8 @@ Not all languages support run-time validation. Currently, `analytics.js` and `an
## Contributing
-If you're interested in contributing, [open an issue on GitHub](https://github.com/segmentio/typewriter/issues/new) and Segment can help provide you pointers to get started.
+If you're interested in contributing, [open an issue on GitHub](https://github.com/segmentio/typewriter/issues/new){:target="_blank”} and Segment can help provide you pointers to get started.
## Feedback
-Segment welcomes feedback you may have on your experience with Typewriter. To contact Segment, [open an issue on GitHub](https://github.com/segmentio/typewriter/issues/new).
+Segment welcomes feedback you may have on your experience with Typewriter. To contact Segment, [open an issue on GitHub](https://github.com/segmentio/typewriter/issues/new){:target="_blank”}.
diff --git a/src/unify/Traits/predictions/index.md b/src/unify/Traits/predictions/index.md
index 9570d3c997..3bbab52b91 100644
--- a/src/unify/Traits/predictions/index.md
+++ b/src/unify/Traits/predictions/index.md
@@ -72,8 +72,8 @@ For example, to predict a customer's propensity to purchase over the next 30 day
To access Predictions, you must:
-- Track more than 1 event type, but fewer than 5,000 event types. An event type refers to the total number of distinct events seen across all users in an Engage Space within the past 15 days.
- - If you currently track more than 5,000 distinct events, reduce the number of tracked events below this limit and wait around 15 days before creating your first prediction.
+- Track more than 1 event type, but fewer than 2,000 event types. An event type refers to the total number of distinct events seen across all users in an Engage Space within the past 15 days.
+ - If you currently track more than 2,000 distinct events, reduce the number of tracked events below this limit and wait around 15 days before creating your first prediction.
- Events become inactive if they've not been sent to an Engage Space within the past 15 days.
- To prevent events from reaching your Engage Space, modify your event payloads to set `integrations.Personas` to `false`.
- For more information on using the integrations object, see [Spec: Common Fields](/docs/connections/spec/common/#context:~:text=In%20more%20detail%20these%20common%20fields,Destinations%20field%20docs%20for%20more%20details.), [Integrations](https://segment.com/docs/connections/spec/common/#context:~:text=Kotlin-,Integrations,be%20sent%20to%20rest%20of%20the%20destinations%20that%20can%20accept%20it.,-Timestamps), and [Filtering with the Integrations object](https://segment.com/docs/guides/filtering-data/#filtering-with-the-integrations-object).
diff --git a/src/unify/Traits/sql-traits.md b/src/unify/Traits/sql-traits.md
index 2685014d79..7fbfac86ba 100644
--- a/src/unify/Traits/sql-traits.md
+++ b/src/unify/Traits/sql-traits.md
@@ -218,6 +218,10 @@ No, SQL Traits supports string and numeric data types. You can cast arrays as a
After a SQL trait has been created, you can't change its Warehouse Source. You'll need to create a new trait if you want to change the Warehouse source.
+### What happens if a user is no longer returned by the SQL trait?
+
+If a user was present in one computation, but it is no longer present in the following one, the SQL trait will detect this difference and nullify all trait values for the user. [Contact Segment](https://segment.com/help/contact/){:target="_blank"} if you have a use case which calls for an exemption from this default behavior.
+
## Troubleshooting
### I'm getting a permissions error.
diff --git a/src/unify/identity-resolution/identity-resolution-settings.md b/src/unify/identity-resolution/identity-resolution-settings.md
index 9aefcd9bf5..2aaa61a209 100644
--- a/src/unify/identity-resolution/identity-resolution-settings.md
+++ b/src/unify/identity-resolution/identity-resolution-settings.md
@@ -10,18 +10,18 @@ redirect_from:
> info ""
-> The steps in this guide pertain to spaces created before September 27th, 2020. For spaces created after September 27th, 2020, please refer to the onboarding guide [here](/docs/unify/identity-resolution/identity-resolution-onboarding/).
+> The steps in this guide pertain to spaces created before September 27th, 2020. For spaces created after September 27th, 2020, please refer to the [Identity Resolution Onboarding](/docs/unify/identity-resolution/identity-resolution-onboarding/) docs.
## Configure Identity Graph rules
-Before you connect a source to Unify, Segment recommends that you first review the default Identity settings and configure custom rules as needed. Segment applies configuration updates to all *new* data flowing through the space after you save your changes. As a result, if this is your first time setting up your Identity Graph, Segment recommends that you get started with a *Dev* space [here](/docs/unify/identity-resolution/space-setup/).
+Before you connect a source to Unify, Segment recommends that you first review the default Identity settings and configure custom rules as needed. Segment applies configuration updates to all *new* data flowing through the space after you save your changes. As a result, if this is your first time setting up your Identity Graph, Segment recommends that you get started with a *Dev* space in the [Space Setup](/docs/unify/identity-resolution/space-setup/) docs.
> info ""
> Workspace owners and users with the Identity Admin role can edit the Identity Resolution table.
> warning "Changing Identity Resolution rules"
> Making a space's Identity Resolution rules less restrictive by changing the [limit](/docs/unify/identity-resolution/identity-resolution-settings/#limit) shouldn't cause any issues to existing or future profiles.
However, making a space's rules more restrictive might have an impact existing profiles that don't adhere to the new rules (for example, decreasing an identifier's limit or changing the [priority](/docs/unify/identity-resolution/identity-resolution-settings/#priority) of identifiers).
->
Segment recommends to get started with a Dev space [here](https://segment.com/docs/unify/identity-resolution/space-setup/), test the rules with the expected data, and then create an identical Production space with those rules. Document any changes to a space's Identity Resolution rules, and don't update rules to be more restrictive after profiles already exist outside the bounds of those new rules.
+>
Segment recommends to get started with a Dev space in the [Space Setup](/docs/unify/identity-resolution/space-setup/) docs, test the rules with the expected data, and then create an identical Production space with those rules. Document any changes to a space's Identity Resolution rules, and don't update rules to be more restrictive after profiles already exist outside the bounds of those new rules.
## ExternalIDs
diff --git a/src/unify/identity-resolution/space-setup.md b/src/unify/identity-resolution/space-setup.md
index 59663fb9d7..d5fd41b54e 100644
--- a/src/unify/identity-resolution/space-setup.md
+++ b/src/unify/identity-resolution/space-setup.md
@@ -10,7 +10,7 @@ When starting with Unify, begin by creating a *Dev* space. This will be your san
## Step two: Configure Identity settings
-Before you connect any source to the Dev space, Segment recommends that you first start by reviewing and configuring your Identity settings, as changes to the Identity rules will only be applied to new events received following any updates. Read more on those settings [here](/docs/unify/identity-resolution/identity-resolution-settings/).
+Before you connect any source to the Dev space, Segment recommends that you first start by reviewing and configuring your Identity settings, as changes to the Identity rules will only be applied to new events received following any updates. Read more on those settings in the [Identity Resolution Settings](/docs/unify/identity-resolution/identity-resolution-settings/) docs.
## Step three: Set up a connection policy
diff --git a/src/unify/product-limits.md b/src/unify/product-limits.md
index 867c324523..542cd7f9ea 100644
--- a/src/unify/product-limits.md
+++ b/src/unify/product-limits.md
@@ -7,7 +7,7 @@ redirect_from:
---
> info ""
-> Beginning August 18, 2023, new Unify Plus and Engage users can refer to this page for Segment's product limits. Existing users prior to this date can continue to refer to the Engage product limits [here](/docs/engage/product-limits/).
+> Beginning August 18, 2023, new Unify Plus and Engage users can refer to this page for Segment's product limits. Existing users prior to this date can continue to refer to the Engage product limits in the [Engage Default Limits](/docs/engage/product-limits/) documentation.
To provide consistent performance and reliability at scale, Segment enforces default use and rate limits within Unify. Most customers do not exceed these limits.
diff --git a/src/unify/quickstart.md b/src/unify/quickstart.md
index ce14843124..bb03c679a8 100644
--- a/src/unify/quickstart.md
+++ b/src/unify/quickstart.md
@@ -40,12 +40,12 @@ You probably have teammates who help set up your Segment Workspace with the data
Segment recommends connecting your production website or App source as a great starting point.
> info ""
-> If the source you want to add doesn't appear on the list, then check if the source is enabled. If the source is enabled, verify that you have set up a connection policy which enforces that you can only add sources with specific labels to this space. Read more about Segment's connection policy [here](/docs/unify/identity-resolution/space-setup/#step-three-set-up-a-connection-policy).
+> If the source you want to add doesn't appear on the list, then check if the source is enabled. If the source is enabled, verify that you have set up a connection policy which enforces that you can only add sources with specific labels to this space. Read more about Segment's connection policy in the [Space Setup](/docs/unify/identity-resolution/space-setup/#step-three-set-up-a-connection-policy) docs.
> success ""
> **Tip:** It sounds a little counter- intuitive to connect a production source to a developer space, but your production sources have rich user data in them, which is what you need to build and validate user profiles.
-Once you select sources, Segment starts a replay of one month of historical data from these sources into your Unify space. We're doing this step first so you have some user data to build your first profiles.
+Once you select sources, Segment starts a replay of one month of historical data from these sources into your Unify space. Segment does this step first so you have some user data to build your first profiles.
The replay usually takes several hours, but the duration will vary depending on how much data you have sent through these sources in the past one month. When the replay finishes, you are notified in the Sources tab under Settings, shown below.
diff --git a/src/utils/cmode-verify.md b/src/utils/cmode-verify.md
index f045e54f3b..2a66ee8d4d 100644
--- a/src/utils/cmode-verify.md
+++ b/src/utils/cmode-verify.md
@@ -102,7 +102,7 @@ tests:
mobile: true
server: true
---
-Use this page to verify that the static table at the top of each section matches the API generated tables below it. Any mismatches indicate a change in the API that requires further research to determine impact to the main Connection Modes table [here](docs/connections/destinations/cmodes-compare/).
+Use this page to verify that the static table at the top of each section matches the API generated tables below it. Any mismatches indicate a change in the API that requires further research to determine impact to the main Connection Modes table in the [Destinations Connection Modes comparison](docs/connections/destinations/cmodes-compare/) docs.
Mismatches are shown highlighted in Red.