-
Notifications
You must be signed in to change notification settings - Fork 256
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Hyperengage] Destination #1621
Conversation
Feature/he action destination
hi @zhadier39 , thanks for raising this PR for a new Integration. Would you be OK meeting with me to run through this? You can schedule a call with me here: http://calendly.com/joe_ayoub/integration-workshop Best regards, |
hey @joe-ayoub-segment , We have booked a time for tomorrow. Thanks |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
name: 'Hyperengage (Actions)', | ||
slug: 'actions-hyperengage', | ||
mode: 'cloud', | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
please add a description.
required: false, | ||
description: 'The account id, to uniquely identify the account associated with the user', | ||
label: 'Account id', | ||
default: { '@path': '$.groupId' } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
default: { '@path': '$.groupId' } | |
default: { '@path': '$.context.group_id' } |
default: { | ||
'@if': { | ||
exists: { '@path': '$.properties.timezone' }, | ||
then: { '@path': '$.properties.timezone' }, | ||
else: { '@path': '$.traits.timezone' } | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
default: { | |
'@if': { | |
exists: { '@path': '$.properties.timezone' }, | |
then: { '@path': '$.properties.timezone' }, | |
else: { '@path': '$.traits.timezone' } | |
} | |
} | |
default: { '@path': '$.context.timezone' } |
}, | ||
user_id: { | ||
type: 'string', | ||
required: false, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should be required. Then you don't need to validate.
screen_resolution: '0', | ||
user_id: input?.user_id || input?.userId, | ||
account_id: input?.account_id || input?.accountId || input?.traits?.companyId || input?.traits?.company?.id, | ||
anonymous_id: input?.anonymousId || random(1000000000, 9999999999).toString(), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Recommend not randomly generating an anonymousId.
|
||
// Get the doc_title from the input url | ||
if (input?.url) { | ||
const urlPattern = new RegExp( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this regex needed? The title tag value is collected using the title field.
name: { | ||
type: 'string', | ||
required: true, | ||
description: "The user's name", | ||
label: 'Name', | ||
default: { | ||
'@if': { | ||
exists: { '@path': '$.traits.name' }, | ||
then: { '@path': '$.traits.name' }, | ||
else: { '@path': '$.properties.name' } | ||
} | ||
} | ||
}, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Suggestion: It's more common that customers send in name as 2 different fields called first_name and last_name.
You could then merge these 2 together if you wanted to send a single name field to your platform.
required: false, | ||
description: 'The account id, to uniquely identify the account associated with the user', | ||
label: 'Account id', | ||
default: { '@path': '$.groupId' } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
default: { '@path': '$.groupId' } | |
default: { '@path': '$.context.group_id' } |
created_at: { | ||
type: 'string', | ||
required: false, | ||
description: 'The timestamp when the user was created', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe explain the format for the timestamp. e.g. ISO 8601, and give an example.
hi @zhadier39 , just checking that you are OK with the feedback on this PR? |
Hi @joe-ayoub-segment , Thanks for reaching out. Yes the feedback is perfect, I've reviewed them and I'm currently addressing the comments. I'll push the updates shortly and will let you know if I have any questions. Best regards, |
exists: { '@path': '$.traits.firstName' }, | ||
then: { '@path': '$.traits.firstName' }, | ||
else: { '@path': '$.properties.firstName' } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
exists: { '@path': '$.traits.firstName' }, | |
then: { '@path': '$.traits.firstName' }, | |
else: { '@path': '$.properties.firstName' } | |
exists: { '@path': '$.traits.first_name' }, | |
then: { '@path': '$.traits.first_name' }, | |
else: { '@path': '$.properties.first_name' } |
exists: { '@path': '$.traits.lastName' }, | ||
then: { '@path': '$.traits.lastName' }, | ||
else: { '@path': '$.properties.lastName' } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
exists: { '@path': '$.traits.lastName' }, | |
then: { '@path': '$.traits.lastName' }, | |
else: { '@path': '$.properties.lastName' } | |
exists: { '@path': '$.traits.last_name' }, | |
then: { '@path': '$.traits.last_name' }, | |
else: { '@path': '$.properties.last_name' } |
default: { | ||
'@if': { | ||
exists: { '@path': '$.context.group_id' }, | ||
then: { '@path': '$.context.group_id' }, | ||
else: { '@path': '$.context.groupId' } | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
default: { | |
'@if': { | |
exists: { '@path': '$.context.group_id' }, | |
then: { '@path': '$.context.group_id' }, | |
else: { '@path': '$.context.groupId' } | |
} | |
} | |
default: { | |
'@if': { | |
exists: { '@path': '$.context.group_id' }, | |
then: { '@path': '$.context.group_id' }, | |
else: { '@path': '$.groupId' } | |
} | |
} |
default: { | ||
'@if': { | ||
exists: { '@path': '$.context.group_id' }, | ||
then: { '@path': '$.context.group_id' }, | ||
else: { '@path': '$.context.groupId' } | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
default: { | |
'@if': { | |
exists: { '@path': '$.context.group_id' }, | |
then: { '@path': '$.context.group_id' }, | |
else: { '@path': '$.context.groupId' } | |
} | |
} | |
default: { | |
'@if': { | |
exists: { '@path': '$.context.group_id' }, | |
then: { '@path': '$.context.group_id' }, | |
else: { '@path': '$.groupId' } | |
} | |
} |
default: { | ||
'@if': { | ||
exists: { '@path': '$.context.group_id' }, | ||
then: { '@path': '$.context.group_id' }, | ||
else: { '@path': '$.context.groupId' } | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
default: { | |
'@if': { | |
exists: { '@path': '$.context.group_id' }, | |
then: { '@path': '$.context.group_id' }, | |
else: { '@path': '$.context.groupId' } | |
} | |
} | |
default: { | |
'@if': { | |
exists: { '@path': '$.context.group_id' }, | |
then: { '@path': '$.context.group_id' }, | |
else: { '@path': '$.groupId' } | |
} | |
} |
@@ -107,5 +98,6 @@ export const validateInput = ( | |||
delete properties.trial_end | |||
delete properties.website | |||
} | |||
console.log(properties) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
please remove the console.log
if (input?.name) { | ||
properties.traits = { | ||
email: input?.email, | ||
name: input?.name, | ||
created_at: input?.created_at, | ||
...properties.traits | ||
} | ||
} else if (input?.first_name || input?.last_name) { | ||
properties.traits = { | ||
email: input?.email, | ||
name: `${input?.first_name} ${input?.last_name}}`, | ||
created_at: input?.created_at, | ||
...properties.traits | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we throw an error if input.name and input.first_name and input.last_name are all empty?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I think throwing an error for mandatory field missing should be the way to go here. Lemme see what I can do.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey @joe-ayoub-segment , I've resolved the default path issues and added an error incase neither of the first_name and last_name or name fields are provided. Sorry for the inconvenience and thank you so much for your time
Hey @joe-ayoub-segment , is this getting deployed today? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hi @zhadier39 and @saadhypng , couple more things.
Also the unit tests are failing. Can you make sure they pass please?
You can run them using this command:
yarn jest --testPathPattern='./packages/destination-actions/src/destinations/hyperengage'
Also please make sure this command passes:
yarn validate
label: 'Timezone', | ||
default: { | ||
'@if': { | ||
exists: { '@path': 'context.timezone' }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
exists: { '@path': 'context.timezone' }, | |
exists: { '@path': '$.context.timezone' }, |
@@ -0,0 +1,102 @@ | |||
import { Settings } from './generated-types' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There are linting errors because of the use of 'any'. You can either fix them or add the following line:
/* eslint-disable @typescript-eslint/no-explicit-any */
Also, you shouldn't throw a regular Error object. Please throw a PayloadValidationError object. You can include it here:
import { PayloadValidationError } from '@segment/actions-core'
...properties.traits | ||
} | ||
} else { | ||
throw new Error('Either name, or first_name and last_name must be provided.') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
throw new Error('Either name, or first_name and last_name must be provided.') | |
throw new PayloadValidationError('Either name, or first_name and last_name must be provided.') |
Hey @joe-ayoub-segment , I haven't meddled with any other action destinations as you can see in the PR. What am I expected to do here? |
Hi @zhadier39 if yarn validate passes that's great, nothing to do. Do the unit tests pass when you run this? yarn jest --testPathPattern='./packages/destination-actions/src/destinations/hyperengage' |
Looks like you probably fixed the tests. I'll run CI now. |
Hi @zhadier39 this PR has been deployed. I'll share instructions for how to access it via email. |
commit 8b736ac Author: Harsh Joshi <[email protected]> Date: Thu Oct 12 10:12:51 2023 +0530 Add order complete action to klaviyo commit e440b74 Author: Harsh Joshi <[email protected]> Date: Tue Oct 10 15:32:10 2023 +0530 Add upsert profile and track event actions to klaviyo commit 5a1cb53 Author: Joe Ayoub <[email protected]> Date: Mon Oct 9 18:16:38 2023 +0200 updating wording on field (#1631) commit 2f16bc8 Author: Ankit Gupta <[email protected]> Date: Mon Oct 9 19:45:54 2023 +0530 Revert "[STRATCONN] 3183 Added email subscribe as dynamic field in braze (#1606)" (#1639) This reverts commit 17bd01f. commit 34fbab6 Author: Elena <[email protected]> Date: Thu Oct 5 13:06:00 2023 -0700 Yahoo audiences 2 (#1636) * scaffold files and folders * updated yahoo integration * Comments and some fixes. * Updating definition to have `createSegment` action. * modified mappings * updateStatus fix * Added new action createCustomerNode Code clean up, extra console.logs for testing * Yahoo: prep for Staging * Yahoo: minor fixes * Yahoo: gdpr support * Yahoo: added validation that incoming event is Audience update, removed unnecessary logging * Removing repeated code, improving JSDoc. * Unifying `updateTaxonomy` calls. * - `await/try/catch` instead of chained promises; - Missing `BASE_URL` as constant. * Yahoo: added createAudience, testAuthentication, updated settings * Yahoo: async func call fix * attempting to get project to build * registering yahoo-audiences * Adding Destination description * Adding missing description to Action * Setting enable_batching field to be boolean * Setting enable_batching setting to be boolean * Yahoo: handling errors from taxonomy API * Yahoo: modifier err handling * Unit test for `YahooAudiences.updateSegment`. * Success and failure cases for `YahooAudiences.updateSegment`. * Unit tests for `createAudience` in Yahoo Audiences. * Yahoo: removed duplicate file * Yahoo: updateSegment action changes - added Identifier selector, Yahoo payload checks, set action fields 'required' status to false where needed * Yahoo: updated audienceSettings * Yahoo: added more unit tests, added support of preferred identifier in 'audienceSettings' with a fallback to an identifier fetched from the action * Yahoo: added check of audience_id * Fixing unit tests. * Yahoo: minor fixes * Yahoo: cleaned up comments, console.log * Snapshots don't make sense here: we have two endpoints. One of them uses OAuth1, which gets a new nonce every time the API is called. * Removing unnecessary `else`s. * Yahoo: Taxonomy API auth change * Yahoo: unit tests * deleting actions --------- Co-authored-by: Jina Park <[email protected]> Co-authored-by: Elena Parshina <[email protected]> Co-authored-by: Leonel Sanches <[email protected]> Co-authored-by: joe-ayoub-segment <[email protected]> commit 4b31c5b Author: rhall-twilio <[email protected]> Date: Thu Oct 5 11:33:54 2023 -0400 remove timestamp from LiveRamp filename default (#1633) commit fa3afde Author: joe-ayoub-segment <[email protected]> Date: Tue Oct 3 15:23:55 2023 +0100 Publish - @segment/[email protected] commit f3c9b8c Author: Joe Ayoub <[email protected]> Date: Tue Oct 3 16:22:13 2023 +0200 Registering hyperengage Registering hyperengage Destination commit 3ef6f30 Author: Ryan Rouleau <[email protected]> Date: Tue Oct 3 09:23:31 2023 -0400 Track s3 call (#1600) commit b984363 Author: Elena <[email protected]> Date: Tue Oct 3 06:16:59 2023 -0700 Yahoo audiences (#1628) * scaffold files and folders * updated yahoo integration * Comments and some fixes. * Updating definition to have `createSegment` action. * modified mappings * updateStatus fix * Added new action createCustomerNode Code clean up, extra console.logs for testing * Yahoo: prep for Staging * Yahoo: minor fixes * Yahoo: gdpr support * Yahoo: added validation that incoming event is Audience update, removed unnecessary logging * Removing repeated code, improving JSDoc. * Unifying `updateTaxonomy` calls. * - `await/try/catch` instead of chained promises; - Missing `BASE_URL` as constant. * Yahoo: added createAudience, testAuthentication, updated settings * Yahoo: async func call fix * attempting to get project to build * registering yahoo-audiences * Adding Destination description * Adding missing description to Action * Setting enable_batching field to be boolean * Setting enable_batching setting to be boolean * Yahoo: handling errors from taxonomy API * Yahoo: modifier err handling * Unit test for `YahooAudiences.updateSegment`. * Success and failure cases for `YahooAudiences.updateSegment`. * Unit tests for `createAudience` in Yahoo Audiences. * Yahoo: removed duplicate file * Yahoo: updateSegment action changes - added Identifier selector, Yahoo payload checks, set action fields 'required' status to false where needed * Yahoo: updated audienceSettings * Yahoo: added more unit tests, added support of preferred identifier in 'audienceSettings' with a fallback to an identifier fetched from the action * Yahoo: added check of audience_id * Fixing unit tests. * Yahoo: minor fixes * Yahoo: cleaned up comments, console.log * Snapshots don't make sense here: we have two endpoints. One of them uses OAuth1, which gets a new nonce every time the API is called. * removing unnecessary and possibly problematic error throw --------- Co-authored-by: Jina Park <[email protected]> Co-authored-by: Elena Parshina <[email protected]> Co-authored-by: Leonel Sanches <[email protected]> Co-authored-by: joe-ayoub-segment <[email protected]> commit 17a2f7f Author: suppalapati <[email protected]> Date: Tue Oct 3 05:49:20 2023 -0700 fix: remove eventstreams flagon (#1622) Co-authored-by: suppalapati <[email protected]> commit dc0f000 Author: zhadier39 <[email protected]> Date: Tue Oct 3 17:48:57 2023 +0500 [Hyperengage] Destination (#1621) * Add unit and integration tests * Updated field descriptions for group, identify and track * Updated common fields * Fix identify function error * Added authentication endpoint * Revise tests to enable auth * Update default paths for groupId. * Implement recommended changes from PR #1621 * Add url field * Resolve pathing issues and add tests/checks for first and last name fields * Resolve test issues, payload validation error, and correct context default --------- Co-authored-by: saadhypng <[email protected]> Co-authored-by: Saad Ali <[email protected]> commit 08e75ef Author: Matt Grosvenor <[email protected]> Date: Tue Oct 3 06:47:18 2023 -0400 Segment Actions Improvements (#23) (#1550) * Make userId and uid not required * Change path from v2beta to v2 * Remove integrationSrc query param for v2 routes * change testAuthentication to use /me endpoint commit ec2edbd Author: Innovative-GauravKochar <[email protected]> Date: Tue Oct 3 16:14:22 2023 +0530 [Strat-3157] | Updated type of num_items from string to integer (#1620) * worked on fixing 3157 | Pinterest Conversions API sending integers as strings. * Handle NAN while parsing * updated datatype of num_items from string to integer --------- Co-authored-by: Gaurav Kochar <[email protected]> commit a008da0 Author: Maryam Sharif <[email protected]> Date: Mon Oct 2 11:29:44 2023 -0700 Publish - @segment/[email protected] - @segment/[email protected] - @segment/[email protected] - @segment/[email protected] - @segment/[email protected] commit 3c89f00 Author: maryamsharif <[email protected]> Date: Mon Oct 2 11:22:21 2023 -0700 [The Trade Desk] Add error message (#1627) * Add error if external_id not found in payload * Add test case * Add preset * Remove preset: commit af521a0 Author: maryamsharif <[email protected]> Date: Mon Oct 2 10:54:39 2023 -0700 [TikTok Audiences] Remove feature flag (#1624) * Use different feature flag * Fix test * Remove feature flag commit 53f6f86 Author: maryamsharif <[email protected]> Date: Mon Oct 2 10:06:32 2023 -0700 [The Trade Desk CRM] Remove old create audience flow (#1618) * Remove flagon for createAudience * Remove unnecesssary fields * Fix tests commit a24111e Author: joe-ayoub-segment <[email protected]> Date: Mon Oct 2 13:33:45 2023 +0100 comitting generated typees for hubble commit 478b969 Author: joe-ayoub-segment <[email protected]> Date: Mon Oct 2 12:46:46 2023 +0100 registering hubble commit b60859d Author: M.Byun <[email protected]> Date: Mon Oct 2 20:16:10 2023 +0900 feat: hubble-web browser-destination (#1566) * feat: hubble-web browser-destination * refactor: change settings appId to id * refactor: setSource to be global and add identifiers to track * fix(hubble-web): set optional chaining when setting source on initialize * refactor: make identify and track take objects as arguments * fix: change to production URL for script * fix: failing test for hubble-web browser destination - change test to correct URL - add optional chaining to setSource on initialize commit 17bd01f Author: Ankit Gupta <[email protected]> Date: Thu Sep 28 12:48:52 2023 +0530 [STRATCONN] 3183 Added email subscribe as dynamic field in braze (#1606) * Added email subscribe as dynamic field in braze * build failing due to generated type
* Add unit and integration tests * Updated field descriptions for group, identify and track * Updated common fields * Fix identify function error * Added authentication endpoint * Revise tests to enable auth * Update default paths for groupId. * Implement recommended changes from PR segmentio#1621 * Add url field * Resolve pathing issues and add tests/checks for first and last name fields * Resolve test issues, payload validation error, and correct context default --------- Co-authored-by: saadhypng <[email protected]> Co-authored-by: Saad Ali <[email protected]>
…ser_id field in group call (#1733) * Add unit and integration tests * Updated field descriptions for group, identify and track * Updated common fields * Fix identify function error * Added authentication endpoint * Revise tests to enable auth * Update default paths for groupId. * Implement recommended changes from PR #1621 * Add url field * Resolve pathing issues and add tests/checks for first and last name fields * Resolve test issues, payload validation error, and correct context default * Fix no user_id field in group call and timezone offset bug * Add tests for new functionality * Delete packages/destination-actions/src/destinations/liveramp-audiences/audienceEnteredSFTP.types.ts Remove auto generated types file on liveramp platform * Fix ts error with timeZoneName --------- Co-authored-by: saadhypng <[email protected]> Co-authored-by: Saad Ali <[email protected]>
…ser_id field in group call (#1733) * Add unit and integration tests * Updated field descriptions for group, identify and track * Updated common fields * Fix identify function error * Added authentication endpoint * Revise tests to enable auth * Update default paths for groupId. * Implement recommended changes from PR #1621 * Add url field * Resolve pathing issues and add tests/checks for first and last name fields * Resolve test issues, payload validation error, and correct context default * Fix no user_id field in group call and timezone offset bug * Add tests for new functionality * Delete packages/destination-actions/src/destinations/liveramp-audiences/audienceEnteredSFTP.types.ts Remove auto generated types file on liveramp platform * Fix ts error with timeZoneName --------- Co-authored-by: saadhypng <[email protected]> Co-authored-by: Saad Ali <[email protected]>
commit 12d62f7 Author: Harsh Joshi <[email protected]> Date: Wed Dec 6 10:29:30 2023 +0530 cleanup commit 3b8b9ed Author: Harsh Joshi <[email protected]> Date: Mon Dec 4 10:36:54 2023 +0530 Code changes and unit tests commit 2edb75e Merge: 8e9e776 ad48899 Author: Harsh Joshi <[email protected]> Date: Wed Nov 29 18:01:45 2023 +0530 Merge branch 'STRATCONN-3399' into klaviyo-add-to-profile-batch commit 8e9e776 Author: Elena <[email protected]> Date: Wed Nov 29 04:02:37 2023 -0800 Yahoo audiences 5 (#1742) * new audience settings, logging * mapping change, device type commit 7b0fe44 Author: Ankit Gupta <[email protected]> Date: Wed Nov 29 17:25:49 2023 +0530 [STRATCONN] Klaviyo AddToProfileList and RemoveFromProfileList actions with engage setup (#1723) * AddToProfileList and RemoveFromProfileList action added * added new flow of addProfileToList and RemoveProfileFromList actions in klaviyo * completed audience setup for klaviyo * updated api key field for klaviyo * change in remove from list api test cases * full audience sync turned off for audience klaviyo * changing default path of external_id * Removed debug codes * code refactored * change in addProfile and removeProfile in klaviyo * Resolved build error * Resolved build error * Added buildHeaders function * Seperated addProfile and RemoveProfile Functions * Added audience desctiption * Change error handling of createProfile function * Change error handling of createProfile function * Modified in addProfileToList Test case commit 6db1308 Author: Marín Alcaraz <[email protected]> Date: Wed Nov 29 03:54:19 2023 -0800 Add updateHandler to Actions DV360 (#1726) * Add updateHandler to Actions DV360 * Fix tests * update yarn.lock commit ac78bc7 Author: alfrimpong <[email protected]> Date: Wed Nov 29 05:50:15 2023 -0600 Inc-7055 long term fix: add external ids to message tags (#1744) * feat: add external id type & value to message tags * feat: add test to enforce passthrough commit 31e207c Author: alfrimpong <[email protected]> Date: Wed Nov 29 05:44:38 2023 -0600 Channels-973: parse text field of action buttons (#1738) * feat: parse merge tags in action button text * chore: added unit test commit 593b024 Author: Sayan Das <[email protected]> Date: Wed Nov 29 17:14:02 2023 +0530 LR: Fix CSV generator to account for all rows (#1735) * Fixed CSV generator to account for all rows * Updated CSV processor, tests and snapshots commit ce3c082 Author: maryamsharif <[email protected]> Date: Wed Nov 29 03:43:21 2023 -0800 [STRATCONN-3376] Add phone number to TikTok Audiences (#1730) * Add phone number * Fix unit tests * Hide enable batching field + adjust names commit 6fc66be Author: Chris Brown <[email protected]> Date: Wed Nov 29 06:42:32 2023 -0500 rename full_name to display_name to fix API changes (#1743) * rename full_name to display_name to fix API changes * Update full_name to display_name in tests commit 10cc239 Author: Joe Ayoub <[email protected]> Date: Wed Nov 29 12:42:06 2023 +0100 adding default paths for click id and cookie (#1729) commit 5d80f5e Author: zhadier39 <[email protected]> Date: Wed Nov 29 16:41:16 2023 +0500 [Hyperengage] Resolved issue with Timezone Offset and Added Missing user_id field in group call (#1733) * Add unit and integration tests * Updated field descriptions for group, identify and track * Updated common fields * Fix identify function error * Added authentication endpoint * Revise tests to enable auth * Update default paths for groupId. * Implement recommended changes from PR #1621 * Add url field * Resolve pathing issues and add tests/checks for first and last name fields * Resolve test issues, payload validation error, and correct context default * Fix no user_id field in group call and timezone offset bug * Add tests for new functionality * Delete packages/destination-actions/src/destinations/liveramp-audiences/audienceEnteredSFTP.types.ts Remove auto generated types file on liveramp platform * Fix ts error with timeZoneName --------- Co-authored-by: saadhypng <[email protected]> Co-authored-by: Saad Ali <[email protected]> commit ad48899 Author: Harsh Joshi <[email protected]> Date: Wed Nov 29 15:54:05 2023 +0530 Update error handling commit e9f2370 Author: Harsh Joshi <[email protected]> Date: Fri Nov 24 11:42:37 2023 +0530 Add enable batching commit a75cedd Author: Harsh Joshi <[email protected]> Date: Fri Nov 24 11:06:45 2023 +0530 Add performBatch in upsert profile
Hyperengage Integration
Smart alerting for startup GTM teams, Hyperengage tracks thousands of data points to trigger smart alerts on hidden opportunities when the accounts are ready for upsell, or likely to churn. Our customers are sales, customer success, and Revops teams at B2B SaaS companies.
How our customers want to use Segment
Hyperengage customers may already have usage events in Segment. If they don't, we recommend Segment as a way to quickly connect product usage data to Hyperengage.
Once the integration is connected, Hyperengage uses the data, in combination with other data sources to provide actionable insights which would help Hyperengage customers to reach out to the right people at the right time.
Testing
Include any additional information about the testing you have completed to
ensure your changes behave as expected. For a speedy review, please check
any of the tasks you completed below during your testing.