Skip to content

added dynamic identifiers#3704

Open
monutwilio wants to merge 3 commits intomainfrom
STRATCONN-6683/other-ids
Open

added dynamic identifiers#3704
monutwilio wants to merge 3 commits intomainfrom
STRATCONN-6683/other-ids

Conversation

@monutwilio
Copy link
Copy Markdown
Contributor

@monutwilio monutwilio commented Mar 31, 2026

As of now only email and phone identifiers are supported in upsertProfile action of Memora destination. We need to support all and fetch them directly.

https://twilio-engineering.atlassian.net/browse/STRATCONN-6683

Testing

Demo Link

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
  • Tested end-to-end using the local server
  • [If destination is already live] Tested for backward compatibility of destination. Note: New required fields are a breaking change.
  • [Segmenters] Tested in the staging environment
  • [Segmenters] [If applicable for this change] Tested for regression with Hadron.

Security Review

Please ensure sensitive data is properly protected in your integration.

  • Reviewed all field definitions for sensitive data (API keys, tokens, passwords, client secrets) and confirmed they use type: 'password'

New Destination Checklist

  • Extracted all action API versions to verioning-info.ts file. example

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the Memora upsertProfile action to support dynamically loaded profile identifiers across all Memora trait groups (not just Contact email/phone), aligning the mapping UI and payload-building logic with Memora store-specific trait definitions.

Changes:

  • Converted profile_identifiers to a dynamic key/value object sourced from Memora trait groups, and made profile_traits optional.
  • Added dynamic-field fetching that separates identifier traits (those with idTypePromotion) from regular string traits.
  • Updated validation logic and tests to allow “two identifiers, no traits” while enforcing at least one identifier and at least two total mapped fields.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

File Description
packages/destination-actions/src/destinations/memora/upsertProfile/index.ts Makes identifiers dynamic across trait groups, adds trait-group field fetching, and updates validation + trait-group payload building.
packages/destination-actions/src/destinations/memora/upsertProfile/generated-types.ts Updates payload typings for dynamic identifiers and optional traits.
packages/destination-actions/src/destinations/memora/upsertProfile/tests/index.test.ts Updates mappings/tests for new identifier key format and adds coverage for dynamic identifier keys.
packages/destination-actions/src/destinations/memora/tests/snapshot.test.ts Updates snapshot inputs to use the new identifier key format.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

@monutwilio monutwilio marked this pull request as ready for review April 1, 2026 16:25
@monutwilio monutwilio requested a review from a team as a code owner April 1, 2026 16:25
Copilot AI review requested due to automatic review settings April 1, 2026 16:25
@monutwilio monutwilio review requested due to automatic review settings April 1, 2026 16:27
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.

2 participants