Skip to content

[Wingify] - new Cloud Mode Destination#3861

Open
joe-ayoub-segment wants to merge 6 commits into
mainfrom
wingify
Open

[Wingify] - new Cloud Mode Destination#3861
joe-ayoub-segment wants to merge 6 commits into
mainfrom
wingify

Conversation

@joe-ayoub-segment

@joe-ayoub-segment joe-ayoub-segment commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

New Cloud Mode Destination - Wingify

Testing

Done locally by partner. Will be tested in Private Beta.

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

@joe-ayoub-segment joe-ayoub-segment requested a review from a team as a code owner July 7, 2026 10:49
Copilot AI review requested due to automatic review settings July 7, 2026 10:49
@joe-ayoub-segment joe-ayoub-segment changed the title [Wingify] - nee Destination [Wingify] - new Cloud Mode Destination Jul 7, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Note

Copilot couldn't run its full agentic review because no GitHub Actions runner was available. Make sure your repository has a runner available to run Copilot's review, or add a copilot-setup-steps.yml file specifying one with the runs-on attribute. See the docs for more details.

Adds a new Wingify Cloud Mode destination with actions to forward Segment events (track/page/identify) and audience membership changes to Wingify’s collection endpoints.

Changes:

  • Introduces Wingify destination definition, authentication fields, and metadata.
  • Implements trackEvent, pageVisit, identifyUser, and syncAudience actions with a shared utility for request formatting/sending.
  • Adds Jest test suites covering the new actions and utility UUID generation.

Reviewed changes

Copilot reviewed 19 out of 19 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
packages/destination-actions/src/destinations/wingify/index.ts Registers the new Wingify cloud destination, auth, presets, and action wiring
packages/destination-actions/src/destinations/wingify/metadata.json Declares destination/action metadata for the UI/runtime
packages/destination-actions/src/destinations/wingify/generated-types.ts Generated settings types for the destination authentication config
packages/destination-actions/src/destinations/wingify/types.ts Shared payload and request-body typing for Wingify event requests
packages/destination-actions/src/destinations/wingify/utility.ts Core request formatting, UUID generation, headers, and HTTP send helper
packages/destination-actions/src/destinations/wingify/tests/index.test.ts Tests auth validation and UUID generation behavior
packages/destination-actions/src/destinations/wingify/trackEvent/index.ts Implements the Track Event action definition
packages/destination-actions/src/destinations/wingify/trackEvent/generated-types.ts Generated payload types for Track Event
packages/destination-actions/src/destinations/wingify/trackEvent/tests/index.test.ts Tests Track Event request formatting across modes
packages/destination-actions/src/destinations/wingify/pageVisit/index.ts Implements the Page Visit action definition
packages/destination-actions/src/destinations/wingify/pageVisit/generated-types.ts Generated payload types for Page Visit
packages/destination-actions/src/destinations/wingify/pageVisit/tests/index.test.ts Tests Page Visit request formatting across modes
packages/destination-actions/src/destinations/wingify/identifyUser/index.ts Implements the Identify User action definition
packages/destination-actions/src/destinations/wingify/identifyUser/generated-types.ts Generated payload types for Identify User
packages/destination-actions/src/destinations/wingify/identifyUser/tests/index.test.ts Tests Identify User request formatting across modes
packages/destination-actions/src/destinations/wingify/syncAudience/index.ts Implements the Sync Audience action definition
packages/destination-actions/src/destinations/wingify/syncAudience/generated-types.ts Generated payload types for Sync Audience
packages/destination-actions/src/destinations/wingify/syncAudience/types.ts Defines Wingify audience sync request-body typing
packages/destination-actions/src/destinations/wingify/syncAudience/tests/index.test.ts Tests audience entered/exited payload formatting

Comment thread packages/destination-actions/src/destinations/wingify/utility.ts Outdated
Comment thread packages/destination-actions/src/destinations/wingify/utility.ts Outdated
Comment thread packages/destination-actions/src/destinations/wingify/utility.ts
Comment thread packages/destination-actions/src/destinations/wingify/syncAudience/types.ts Outdated
Copilot AI review requested due to automatic review settings July 7, 2026 11:06

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

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 19 out of 19 changed files in this pull request and generated 7 comments.

Comment thread packages/destination-actions/src/destinations/wingify/utility.ts
Comment thread packages/destination-actions/src/destinations/wingify/utility.ts Outdated
Comment thread packages/destination-actions/src/destinations/wingify/syncAudience/index.ts Outdated
Comment thread packages/destination-actions/src/destinations/wingify/syncAudience/index.ts Outdated
Comment thread packages/destination-actions/src/destinations/wingify/syncAudience/index.ts Outdated
Comment thread packages/destination-actions/src/destinations/wingify/index.ts
joe-ayoub-segment and others added 2 commits July 7, 2026 15:03
- utility.ts: trim + prefix event name consistently (no whitespace leak,
  no double `segment.` prefix); URL-encode the `en` query param; fall back
  to the US host for unknown regions.
- syncAudience: drop `required` on the `name` field (unused in perform and
  absent from identify events); fix "An unique" -> "A unique"; rename the
  shadowing local `action` to `audienceAction`; US host fallback; reformat
  types.ts to 2-space indentation.
- Add a syncAudience test for identify events with no `event` field.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The `name` field was never referenced in `perform` (the payload hardcodes
`wingify_integration`), so remove it from the action definition, generated
types, and metadata. Also syncs the stale metadata.json entry for `userId`.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 7, 2026 14:09

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

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 19 out of 19 changed files in this pull request and generated 9 comments.

Comment thread packages/destination-actions/src/destinations/wingify/index.ts
Comment thread packages/destination-actions/src/destinations/wingify/metadata.json
Comment thread packages/destination-actions/src/destinations/wingify/utility.ts
Comment thread packages/destination-actions/src/destinations/wingify/utility.ts
Comment thread packages/destination-actions/src/destinations/wingify/utility.ts
Comment thread packages/destination-actions/src/destinations/wingify/utility.ts
Comment thread packages/destination-actions/src/destinations/wingify/utility.ts
The Sync Audience preset still mapped `name` to `$.event`, but the action
no longer defines a `name` field. Remove it so the preset mapping only
references fields that exist on the action.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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