Skip to content

Conversation

@GoodmanBen
Copy link
Contributor

Per customer request, we are adding the ability to specifically sync sha256-hashed email addresses as a Rokt audience list.

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.

  • Added unit tests for new functionality
    • Added test checking that a request with only sha256 email addresses pass validation
  • Tested end-to-end using the local server
    Ran successful request with a sha256 email value:
segment-test-email-sha256-working
  • [If destination is already live] Tested for backward compatibility of destination. Note: New required fields are a breaking change.
    Ran an e2e test with just an email address value as before and successfully sent the data to Rokt:
segment-test-email-working
  • [Segmenters] Tested in the staging environment
  • [Segmenters] [If applicable for this change] Tested for regression with Hadron.

@GoodmanBen GoodmanBen changed the title Update Rokt-Audiences Destination to support emailsha256 values. Update Rokt-Audiences Destination to support emailsha256 values Apr 9, 2025
@nick-Ag
Copy link
Contributor

nick-Ag commented Apr 24, 2025

Hi @GoodmanBen - a couple things relating to the failing Github checks:

  • Please run yarn types in your command line and commit the result - it should update a generated-types.ts file and will fix the "Validate" Check.
  • Since you added a email_sha256 as a conditionally required field it is triggering the 'Required Field Check'. This should be safe to ignore in this case since email_sha256 is only required when email is undefined, and since email was previously required then any valid/enabled customer mappings for this destination should still function as intended

@GoodmanBen
Copy link
Contributor Author

GoodmanBen commented Apr 24, 2025

@nick-Ag thank you for the review. I have run yarn types, and I agree with your comment around email_sha256, it should be safe to ignore that warning for our use case.

@GoodmanBen GoodmanBen requested a review from nick-Ag April 24, 2025 19:19
@nick-Ag
Copy link
Contributor

nick-Ag commented Apr 24, 2025

@nick-Ag thank you for the review. I have run yarn types, and I agree with your comment around email_sha256, it should be safe to ignore that warning for our use case.

Hey, looks like generating the types uncovered a build issue that was previously hidden. You'll be able to replicate the step locally by running yarn build Looks like fixing that would be the last thing before an approve

@GoodmanBen
Copy link
Contributor Author

Ah I see, thanks for flagging, added some more defensiveness and was able to run yarn build successfully.

@GoodmanBen
Copy link
Contributor Author

Screenshot 2025-04-28 at 10 24 22 AM

Hi @nick-Ag, it looks like some third party tests are failing in prod, leading to the install-and-test failing. It is unclear to me if there is anything I can do on my end to resolve the Snyk CI failure?

@nick-Ag
Copy link
Contributor

nick-Ag commented Apr 28, 2025

Screenshot 2025-04-28 at 10 24 22 AM Hi @nick-Ag, it looks like some third party tests are failing in prod, leading to the install-and-test failing. It is unclear to me if there is anything I can do on my end to resolve the Snyk CI failure?

Hi @GoodmanBen - we recently disabled those failing tests, if you merge main in they should start working on this branch. You are also free to ignore the synk failure as that's expected for partner PRs

@GoodmanBen
Copy link
Contributor Author

Hi @GoodmanBen - we recently disabled those failing tests, if you merge main in they should start working on this branch. You are also free to ignore the synk failure as that's expected for partner PRs

Thanks @nick-Ag, sounds good just merged master back in

@varadarajan-tw varadarajan-tw merged commit 9f181d0 into segmentio:main Apr 29, 2025
10 of 12 checks passed
@varadarajan-tw
Copy link
Contributor

@GoodmanBen - This PR has been deployed

akhsueh pushed a commit to akhsueh/action-destinations that referenced this pull request May 16, 2025
…entio#2851)

* build: updates

* fix: run yarn types

* fix: build errors
joe-ayoub-segment added a commit that referenced this pull request May 28, 2025
* add phone number support to reddit-conversions-api

* Update order of mapping for phone numbers

Co-authored-by: Joe Ayoub <[email protected]>

* [Twilio-Messaging-Omnichannel] Register and set up Basic Authentication (#2827)

* Initial commit on branch

* Delete packages/destination-actions/src/destinations/twilio-messaging-omnichannel/__tests__/index.test.ts

* Delete packages/destination-actions/src/destinations/twilio-messaging-omnichannel/__tests__/snapshot.test.ts

* Delete packages/destination-actions/src/destinations/twilio-messaging-omnichannel/sendMessage/__tests__/snapshot.test.ts

* Delete packages/destination-actions/src/destinations/twilio-messaging-omnichannel/sendMessage/__tests__/index.test.ts

* [Salesforce] Advanced stats for CSV generation (#2825)

* WIP

* Adds stats around CSV generation. Counts the number of columns and rows. Counts the number of actual values and number of nulls for the whole CSV. Unit tests included

* Log out the CSV stats after the job is created to ensure the jobID is a defined tag

* [STRATCONN-5603] - Format timestamp fields without miliiseconds (#2816)

* [STRATCONN-5603] - Format timestamp fields without miliiseconds

* Revert type changes

* Revert type changes

* [GEC] Simplify convertTimestamp Regex

* Revert unintended change

* [STRATCONN-5601] add subscription object support for unsubscribeProfile action in Klaviyo (#2814)

* add subscription object support for unsubscribeProfile action in Klaviyo

* update snapshots

* add tests

* add tests

* fix comments

* Made Event properties hidden (#2813)

Co-authored-by: Gaurav Kochar <[email protected]>

* [Criteo] Audience Destination: set enable_batching to true by default (#2771)

* [Criteo] Audience Destination: set enable_batching to true by default

* Criteo Audience Destination: make 'Enable Batching' optional

* Criteo Audience Destination: updated generated types

---------

Co-authored-by: m.dillar <[email protected]>

* [algolia-insights] update presets for conversion events (#2770)

* deprecate Product Added

* update conversion presets

* fix

* Register twilio messaging omnichannel destination (#2829)

* Publish (#2830)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Support min/max string length validation (#2831)

* Passes on the InputField min and max properties to JSONSchema for validation

* Adds unit tests and updated comment descriptions for string field min/max

* [Salesforce Marketing Cloud] V2 Data Extension mapping save hook (#2826)

* Scaffolds new v2 actions

* Hook Definition and fields from the original branch

* dataExtensionV2 action filled out with the action definition from original branch

* contactdataExtensionV2 action filled out with the action definition from original branch

* Generates types

* Fixes build. Introduces an upsertRowsV2 function for the new actions

* Declares keys and values fields as dynamic only in the V2 actions to ensure no new behavior for the existing actions

* Adds a little (V2) suffix to the titles for the new actions

* Improves error message when users encounter auth issues for data extension id dynamic field

* When a user doesn't have auth permission to lookup a data extension, use the ID they provide without verifying it. Provide improved error messaging

* Throw an error if no data extension is connected to the mapping

* Eventbridge enhancements (#2828)

* Passes on the InputField min and max properties to JSONSchema for validation

* [required-field-check] Run yarn install after switching to main branch (#2801)

* [required-field-check] Run install after switching to main branch

* Add more comments

* Eventbridge cosmetic changes (#2807)

* Description changes

* Description changes

* additional enhancements

* eventbridge enhancements

* eventbridge enhancements

* changed Error to IntegrationError

---------

Co-authored-by: Nick Aguilar <[email protected]>
Co-authored-by: Varadarajan V <[email protected]>

* Publish (#2835)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* [STRATCONN-5608] - Make ssl_enabled and ssl_reject_unauthorized_ca settings optional (#2832)

* Revert "Fix Test cases (#2538)" (#2844)

This reverts commit dda2c53.

* Update Trubrics action destination (#2784)

* Test

* Test

* update types

* final

* identify

* pr comments

* utils https

* add thread_id

* fix tests

---------

Co-authored-by: Jeff Kayne <[email protected]>

* [STRATCONN-5473] Add destinationInstanceID and subscriptionId to support audience fanout for Liveramp Audiences (#2786)

* [STRATCONN-5473] Add destinationInstanceID and subscriptionId to support audience fanout

* Revert Tradesk Changes

* handle file path edge cases

* handle file path edge cases

* Add Tests

* [SMART-HASHING] [STRATCONN-5636] Updated smart-hashing in delivrai-activate (#2836)

* Updated smart-hashing in delivrai-activate

* Updated unit test cases

* [Smart Hashing] [Snap Conversions API] Implement Smart hashing for Snap Conversions API (#2837)

* Implement Smart hashing for Snap Conversions API

* Return undefined from smart hash if hash field are not defined

* [SMART-HASHING] [STRATCONN-5637] Updated smart-hashing in dynamic-yield (#2839)

* Updated smart-hashing in dynamic-yield

* Removed email formating

* Fixed test cases

* Return undefined from smart hash if hash field are not defined (#2841)

* [Smart Hashing] [Snap Audience] Implement Smart hashing for Snap Audience (#2843)

* Implement Smart hashing for Snap Audience

* Remove console log

* Publish (#2845)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Add hashedPII category to all fields that are hashed using process hashing (#2847)

* [Smart Hashing] Remove redundant hashing descriptions (#2848)

* [GEC] update description

* [Amazon AMC] Update description

* [Tiktok-offline-conversions] Update hashing description

* update generated-types

* Update packages/destination-actions/src/destinations/amazon-amc/syncAudiencesToDSP/index.ts

Co-authored-by: Copilot <[email protected]>

* [Amazon AMC] update types

---------

Co-authored-by: Copilot <[email protected]>

* Correct Presets for Linked Audience Activations

* Handles non-http error in SFMC multistatus handler (#2854)

* Handles non-http error in SFMC multistatus handler

* Update tests

* Update test case

* Amazon AMC - Increased http client timeout to 15 seconds (#2852)

* Publish (#2855)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* [Google Ads] Standardize Phone Number Formatting (#2810)

* [STRATCONN-5676] - Adds support braze web sdk - 5.8.1 (#2833)

* [STRATCONN-5602] - Sendgrid EU endpoint (#2849)

* [Sendgrid] Add support for EU endpoint

* Update sendEmail action to use regional endpoints

* Update uri format

* Add tests

* Add tests for dynamic fields

* Fix template content url

* Update Liveramp Docs (#2862)

* Update Liveramp Docs

* Update Liveramp Docs

* Update membership lifespan (#2863)

* Publish (#2864)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Add mapping-kit labels and alert (#2867)

* Add error when no audience found (#2872)

* Angler AI - Add missing payload field  (#2818)

* initial commit

* fix failing tests

* updated saveUser action

* updated saveOrder action

* updated saveEvent action

* added action descriptions

* updated presets

* flattened saveEvent mapping

* fixed saveEvent.perform

* fixed saveEvent mapping

* updated snapshots

* updated snapshots

* fixed saveEvent payload structure

* don't include empty objects in payload

* updated

* progress

* restructure events

* remove defaults for optional fields

* restore address field

* update untranslated title default values

* updated snapshots

* remove unused import

* fixed default paths

* reorganized saveUser fields

* updated saveBaseEvent fields

* fixed default_address default in saveUser

* moved custom event name to saveBaseEvent

* updated tests

* added defaults for customer field in saveEvent

* test commit

* refactor fields

* consistent naming for fields variables

* removed cartFields from saveCartEvent

* removed less important saveOrder fields

* updated event names

* moved event name field from common fields

* fixed field name

* refactor event fields

* updated generated types

* updated tests

* fixed checkout fields

* updated payload transformation functions

* removed custom event preset

* fixed identifiers transformation

* updated tests

* wrapped cart and checkout fields into objects

* updated tests

* minor changes to presets

* added missing checkout event name

* fixed saveUser payload structure

* fixed typo

* updated tests

* fix customers endpoint url

* add preset for saveOrder

* add email and phone to checkout payload

* add billing and shipping address to checkout object

* update snapshots

* save line items

* update snapshots

* update tests for saveOrder

* generate line item id

* update snapshots

* add missing custom_event_name field to saveCustomEvent

---------

Co-authored-by: Jonathan Sudhakar <[email protected]>
Co-authored-by: Joe Ayoub <[email protected]>

* Add fs_user_id and web_user_id to Optimizely payload interfaces (#2789)

* Add fs_user_id and web_user_id to Optimizely payload interfaces

* Add fs_user_id and web_user_id fields to Optimizely user identifiers

* Generates types

* Updates unit test snapshots

* Manually sets snapshot expectation to address broken test

* Manually sets snapshot expectation to address broken test, again

---------

Co-authored-by: Manuel Nuñez <[email protected]>
Co-authored-by: Nick Aguilar <[email protected]>

* Publish (#2882)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Added MultiStatus Documentation (#2886)

* Fix MultiStatus README (#2887)

* MultiStatus Readme Fix (#2889)

* Disable failing logrocket tests (#2890)

* Disable logrocket tests till they are fixed

* Disable another test

* [Klaviyo] Handle empty array being sent to Klaviyo resulting 400 Bad request. (#2885)

* Worked on fixing empty array being sent to Klaviyo

* Unit Test cases for removeProfile

---------

Co-authored-by: Gaurav Kochar <[email protected]>

* Add initial status to drip destination (#2884)

Co-authored-by: Jacob Meyer <[email protected]>

* Allow only dropdown value in objectType and toObjectType in UpsertCustomObjectRecord. (#2881)

* Disabled other enteries in obejctTYpe and toObjectType expect dropdown value

* .

---------

Co-authored-by: Gaurav Kochar <[email protected]>

* [HubSpot] Fix data type validations (#2866)

Co-authored-by: Gaurav Kochar <[email protected]>

* [STRAT-5634] | Multistatus Support on Google Enhanced Conversions. (#2853)

* Worked on implementing multistatus support on google enhanced conversions

* Made external audience Id mandatory

* Removed hardcoded token

* Handle externalAudienceId

* Commenting , just typo fix

---------

Co-authored-by: Gaurav Kochar <[email protected]>

* Update Rokt-Audiences Destination to support emailsha256 values (#2851)

* build: updates

* fix: run yarn types

* fix: build errors

* Postscript Events for Entered/Exit Segment Audience (#2842)

* Add events for entered and exited audience

* Add nock for events for tests

* [eventbridge] support for multi-status response (#2859)

* support for multi-status response

* changed title of action Send to SendV2

* added feature flag code check

* [Podscribe] New hashed_email property field (#2819)

* Add library field to Podscribe destination

* Handle case when payload.library is undefined

* Remove format validation from email field

* Update test snapshots

* Add library field to Podscribe destination

* Handle case when payload.library is undefined

* Update test snapshots

* feat(podscribe) add hashed_email properties field and user_id settings field

* fix(sergment) add hashed email

* fix(podscribe) clean up

* fix(podscribe) update test snapshot

* fix(podscribe) re-generate types

* Publish (#2892)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* STRATCONN-5564 - add sales objects (#2888)

* added sales type objects to SUPPORTED_HUBSPOT_OBJECT_TYPES

* added product

* removed quotes and leads

* add hubspot objects (#2898)

* adding new regions for Braze (#2896)

* Add User-Agent header to Drip destination for source identification (#2897)

* small updates to the default mappings in the Reddit CAPI integration (#2893)

Co-authored-by: Austin Hsueh <[email protected]>

* [Smart Hashing] [Liveramp Audiences] Cleanup (#2883)

* cleanup for smart hashing

* Update fb test to use processHashing.

* Use processHashing instead of old hashing util

* [STRATCONN-5489] - Add batch_keys to Klaviyo actions (#2880)

* [STRATCONN-5489] - Add batch_keys to Klaviyo actions

* Fix build

* UpsertProfile - add override_list_id to batch keys

* Add stats to measure grouping

* handle undefined statsclient

* Fix tests

* Add snapshot tests for batch keys

* Remove unused stat

* [STRATCONN-5657] - Add batch keys to webhook action destination (#2878)

* [STRATCONN-5657] - Add batch keys to webhook action destination

* Add stats

* Use histogram

* Add test for batch keys

* Supporting Group event in Userpilot cloud destination (#2838)

* Loops destination: ability to sync contact properties when sending events (#2792)

* Added contact properties to Send event action

* Type for contactProperties

* Type for full payload

* Update generated-types.ts

* feat: vendorId in purchase (#2766)

* Publish (#2900)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* [Smart Hashing] Add smart hashing documentation in readme (#2860)

* Add smart hashing documentation in readme

* Update smart hashing documentation

* update heading

* update docs

* Update smart hashing documentation

* [Smart Hashing] Add eslint rule to limit usage of createHash from crypto module (#2861)

* Add eslint rule to limit usage of createHash from crypto module

* Update error message

* [Smart Hashing] Cleanup (#2876)

* cleanup for smart hashing

* cleanup for smart hashing

* [Smart Hashing] Cleanup (#2877)

* cleanup for smart hashing

* Remove createHash from test file

* [Smart Hashing] Cleanup (#2879)

* cleanup for smart hashing

* Update reddit conversions test case

* Publish (#2901)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* STRATCONN-5564: add quotes object support (#2910)

* Update subscription presets and action descriptions for audience destinations for Journeys V2 (#2894)

* Update subscription presets and action descriptions

* Update the sync destination's description

* Change 'Journeys Step Transition Track' to 'Journeys Step Entered'

* added cleaning and hashing function and updated tests

* update cleanPhoneNumber for optional phoneNumber

---------

Co-authored-by: Austin Hsueh <[email protected]>
Co-authored-by: Joe Ayoub <[email protected]>
Co-authored-by: rvadera12 <[email protected]>
Co-authored-by: Nick Aguilar <[email protected]>
Co-authored-by: Varadarajan V <[email protected]>
Co-authored-by: Arijit Ray <[email protected]>
Co-authored-by: Innovative-GauravKochar <[email protected]>
Co-authored-by: Gaurav Kochar <[email protected]>
Co-authored-by: Marc Dillar <[email protected]>
Co-authored-by: m.dillar <[email protected]>
Co-authored-by: Jessica <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: mayur-pitale <[email protected]>
Co-authored-by: guillaumefontan <[email protected]>
Co-authored-by: Jeff Kayne <[email protected]>
Co-authored-by: Ankit Gupta <[email protected]>
Co-authored-by: harsh-joshi99 <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Drew Thompson <[email protected]>
Co-authored-by: Sayan Das <[email protected]>
Co-authored-by: maryamsharif <[email protected]>
Co-authored-by: victor-ru <[email protected]>
Co-authored-by: Jonathan Sudhakar <[email protected]>
Co-authored-by: Joe Ayoub <[email protected]>
Co-authored-by: Manuel Núñez <[email protected]>
Co-authored-by: Manuel Nuñez <[email protected]>
Co-authored-by: Stephen Webber <[email protected]>
Co-authored-by: Jacob Meyer <[email protected]>
Co-authored-by: Ben Goodman <[email protected]>
Co-authored-by: James Bathgate <[email protected]>
Co-authored-by: pitronalldak <[email protected]>
Co-authored-by: monutwilio <[email protected]>
Co-authored-by: Arjun Bhandage <[email protected]>
Co-authored-by: Jacob Meyer <[email protected]>
Co-authored-by: ThabetIbrahim <[email protected]>
Co-authored-by: Dan <[email protected]>
Co-authored-by: Felipe Rivera Cienfuegos <[email protected]>
Co-authored-by: Miguel Pavon Diaz <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants