Skip to content

Commit 35f83a3

Browse files
Mntn and recombee metadata.json updates (#3898)
* updating snapshot tests for Recombee * mntn audiences metadata * updating recombee metadata
1 parent 5680e49 commit 35f83a3

2 files changed

Lines changed: 523 additions & 45 deletions

File tree

Lines changed: 288 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,288 @@
1+
{
2+
"slug": "actions-mntn-audiences",
3+
"name": "MNTN Audiences",
4+
"mode": "cloud",
5+
"description": "Send Segment Engage audience membership data to MNTN. Syncs users into and out of MNTN audience segments using identity signals including email, phone, IP address, and Mobile Advertising ID (MAID).",
6+
"authentication": {
7+
"scheme": "custom",
8+
"fields": {
9+
"api_key": {
10+
"label": "API Key",
11+
"description": "Your MNTN Audience API key, issued via the MNTN Integrations Marketplace. Treat this value as a secret — do not share it or commit it to source control.",
12+
"type": "password",
13+
"required": true,
14+
"multiple": false,
15+
"choices": null,
16+
"default": null,
17+
"depends_on": null
18+
}
19+
}
20+
},
21+
"audienceConfig": {
22+
"mode": {
23+
"type": "synced",
24+
"full_audience_sync": false
25+
},
26+
"audienceFields": {
27+
"segment_id": {
28+
"label": "MNTN Segment ID",
29+
"description": "The ID of a pre-existing MNTN audience segment to sync to. If left blank, a new MNTN segment will be created automatically when this destination is enabled for an audience.",
30+
"type": "string",
31+
"required": false,
32+
"multiple": false,
33+
"choices": null,
34+
"default": null,
35+
"depends_on": null
36+
}
37+
},
38+
"supportsAudienceFunctions": true
39+
},
40+
"actions": {
41+
"syncAudience": {
42+
"title": "Sync Audience",
43+
"description": "Sync a Segment Engage audience to an MNTN audience segment.",
44+
"platform": "cloud",
45+
"defaultSubscription": "type = \"identify\" or type = \"track\"",
46+
"hidden": false,
47+
"hasPerformBatch": true,
48+
"syncMode": null,
49+
"hooks": null,
50+
"dynamicFields": null,
51+
"fields": {
52+
"segment_id": {
53+
"label": "MNTN Segment ID",
54+
"description": "The ID of the MNTN audience segment to sync to. Customers should not need to edit this field.",
55+
"type": "string",
56+
"required": true,
57+
"multiple": false,
58+
"allowNull": false,
59+
"dynamic": false,
60+
"default": {
61+
"@path": "$.context.personas.external_audience_id"
62+
},
63+
"choices": null,
64+
"placeholder": null,
65+
"properties": null,
66+
"category": null,
67+
"depends_on": null,
68+
"readOnly": null,
69+
"hidden": null,
70+
"minimum": null,
71+
"maximum": null,
72+
"defaultObjectUI": null,
73+
"disabledInputMethods": null,
74+
"displayMode": null,
75+
"format": null,
76+
"additionalProperties": false
77+
},
78+
"identity_id": {
79+
"label": "Identity ID",
80+
"description": "A stable identifier for this user in MNTN. Defaults to userId, falling back to anonymousId.",
81+
"type": "string",
82+
"required": true,
83+
"multiple": false,
84+
"allowNull": false,
85+
"dynamic": false,
86+
"default": {
87+
"@if": {
88+
"exists": {
89+
"@path": "$.userId"
90+
},
91+
"then": {
92+
"@path": "$.userId"
93+
},
94+
"else": {
95+
"@path": "$.anonymousId"
96+
}
97+
}
98+
},
99+
"choices": null,
100+
"placeholder": null,
101+
"properties": null,
102+
"category": null,
103+
"depends_on": null,
104+
"readOnly": null,
105+
"hidden": null,
106+
"minimum": null,
107+
"maximum": null,
108+
"defaultObjectUI": null,
109+
"disabledInputMethods": null,
110+
"displayMode": null,
111+
"format": null,
112+
"additionalProperties": false
113+
},
114+
"email": {
115+
"label": "Email Address",
116+
"description": "The user's email address. Sent to MNTN in plaintext and as a SHA-256 hash for audience matching.",
117+
"type": "string",
118+
"required": false,
119+
"multiple": false,
120+
"allowNull": false,
121+
"dynamic": false,
122+
"default": {
123+
"@if": {
124+
"exists": {
125+
"@path": "$.traits.email"
126+
},
127+
"then": {
128+
"@path": "$.traits.email"
129+
},
130+
"else": {
131+
"@path": "$.context.traits.email"
132+
}
133+
}
134+
},
135+
"choices": null,
136+
"placeholder": null,
137+
"properties": null,
138+
"category": null,
139+
"depends_on": null,
140+
"readOnly": null,
141+
"hidden": null,
142+
"minimum": null,
143+
"maximum": null,
144+
"defaultObjectUI": null,
145+
"disabledInputMethods": null,
146+
"displayMode": null,
147+
"format": "email",
148+
"additionalProperties": false
149+
},
150+
"phone": {
151+
"label": "Phone Number",
152+
"description": "The user's phone number. Non-numeric characters (including the + prefix) are removed. Sent to MNTN in normalized plaintext and as a SHA-256 hash for audience matching.",
153+
"type": "string",
154+
"required": false,
155+
"multiple": false,
156+
"allowNull": false,
157+
"dynamic": false,
158+
"default": {
159+
"@if": {
160+
"exists": {
161+
"@path": "$.traits.phone"
162+
},
163+
"then": {
164+
"@path": "$.traits.phone"
165+
},
166+
"else": {
167+
"@path": "$.properties.phone"
168+
}
169+
}
170+
},
171+
"choices": null,
172+
"placeholder": null,
173+
"properties": null,
174+
"category": null,
175+
"depends_on": null,
176+
"readOnly": null,
177+
"hidden": null,
178+
"minimum": null,
179+
"maximum": null,
180+
"defaultObjectUI": null,
181+
"disabledInputMethods": null,
182+
"displayMode": null,
183+
"format": null,
184+
"additionalProperties": false
185+
},
186+
"ip": {
187+
"label": "IP Address",
188+
"description": "The user's IPv4 address. Used for probabilistic audience matching in MNTN campaigns.",
189+
"type": "string",
190+
"required": false,
191+
"multiple": false,
192+
"allowNull": false,
193+
"dynamic": false,
194+
"default": {
195+
"@if": {
196+
"exists": {
197+
"@path": "$.traits.ip"
198+
},
199+
"then": {
200+
"@path": "$.traits.ip"
201+
},
202+
"else": {
203+
"@path": "$.properties.ip"
204+
}
205+
}
206+
},
207+
"choices": null,
208+
"placeholder": null,
209+
"properties": null,
210+
"category": null,
211+
"depends_on": null,
212+
"readOnly": null,
213+
"hidden": null,
214+
"minimum": null,
215+
"maximum": null,
216+
"defaultObjectUI": null,
217+
"disabledInputMethods": null,
218+
"displayMode": null,
219+
"format": null,
220+
"additionalProperties": false
221+
},
222+
"maid": {
223+
"label": "Mobile Advertising ID (MAID)",
224+
"description": "The user's Mobile Advertising ID — IDFA on iOS or GAID on Android.",
225+
"type": "string",
226+
"required": false,
227+
"multiple": false,
228+
"allowNull": false,
229+
"dynamic": false,
230+
"default": {
231+
"@if": {
232+
"exists": {
233+
"@path": "$.traits.advertisingId"
234+
},
235+
"then": {
236+
"@path": "$.traits.advertisingId"
237+
},
238+
"else": {
239+
"@path": "$.properties.advertisingId"
240+
}
241+
}
242+
},
243+
"choices": null,
244+
"placeholder": null,
245+
"properties": null,
246+
"category": null,
247+
"depends_on": null,
248+
"readOnly": null,
249+
"hidden": null,
250+
"minimum": null,
251+
"maximum": null,
252+
"defaultObjectUI": null,
253+
"disabledInputMethods": null,
254+
"displayMode": null,
255+
"format": null,
256+
"additionalProperties": false
257+
},
258+
"timestamp": {
259+
"label": "Event Timestamp",
260+
"description": "ISO 8601 timestamp of when this audience membership event occurred. Sent to MNTN as source_time.",
261+
"type": "string",
262+
"required": false,
263+
"multiple": false,
264+
"allowNull": false,
265+
"dynamic": false,
266+
"default": {
267+
"@path": "$.timestamp"
268+
},
269+
"choices": null,
270+
"placeholder": null,
271+
"properties": null,
272+
"category": null,
273+
"depends_on": null,
274+
"readOnly": null,
275+
"hidden": null,
276+
"minimum": null,
277+
"maximum": null,
278+
"defaultObjectUI": null,
279+
"disabledInputMethods": null,
280+
"displayMode": null,
281+
"format": null,
282+
"additionalProperties": false
283+
}
284+
}
285+
}
286+
},
287+
"presets": []
288+
}

0 commit comments

Comments
 (0)