Skip to content

Commit

Permalink
Angler AI - Fix payload structure (#2175)
Browse files Browse the repository at this point in the history
* 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

---------

Co-authored-by: Jonathan Sudhakar <1854861+jonathansudhakar1@users.noreply.github.com>
Co-authored-by: Joe Ayoub <joe.ayoub@segment.com>
  • Loading branch information
3 people authored Jul 16, 2024
1 parent d4714a4 commit b3a8d63
Show file tree
Hide file tree
Showing 5 changed files with 54 additions and 56 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,7 @@ Object {
},
},
"event_id": "ThtPtJ2v(7[yo[",
"event_name": "checkout_contact_info_submitted",
"event_name": "checkout_shipping_info_submitted",
"fbc": "ThtPtJ2v(7[yo[",
"fpb": "ThtPtJ2v(7[yo[",
"ga": "ThtPtJ2v(7[yo[",
Expand Down Expand Up @@ -319,7 +319,7 @@ Object {
"customer": Object {},
},
"event_id": "ThtPtJ2v(7[yo[",
"event_name": "checkout_contact_info_submitted",
"event_name": "checkout_shipping_info_submitted",
"identifiers": Array [],
},
],
Expand Down Expand Up @@ -1268,6 +1268,8 @@ exports[`Testing snapshot for actions-angler-ai destination: saveUser action - a
Object {
"data": Array [
Object {
"accepts_marketing": false,
"accepts_marketing_updated_at": "g[^FhJnb(lsNz",
"addresses": Array [
Object {
"address1": "g[^FhJnb(lsNz",
Expand Down Expand Up @@ -1297,6 +1299,8 @@ Object {
"zip": "g[^FhJnb(lsNz",
},
],
"created_at": "g[^FhJnb(lsNz",
"currency": "DZD",
"default_address": Object {
"address1": "g[^FhJnb(lsNz",
"address2": "g[^FhJnb(lsNz",
Expand Down Expand Up @@ -1324,48 +1328,42 @@ Object {
"province_code": "g[^FhJnb(lsNz",
"zip": "g[^FhJnb(lsNz",
},
"email": "zav@eja.hm",
"email_marketing_consent": Object {
"consent_updated_at": "g[^FhJnb(lsNz",
"opt_in_level": "g[^FhJnb(lsNz",
"state": "g[^FhJnb(lsNz",
},
"first_name": "g[^FhJnb(lsNz",
"hashed_email": "g[^FhJnb(lsNz",
"hashed_first_name": "g[^FhJnb(lsNz",
"hashed_last_name": "g[^FhJnb(lsNz",
"hashed_phone": "g[^FhJnb(lsNz",
"id": "g[^FhJnb(lsNz",
"last_name": "g[^FhJnb(lsNz",
"last_order_id": "g[^FhJnb(lsNz",
"last_order_name": "g[^FhJnb(lsNz",
"marketing_opt_in_level": "g[^FhJnb(lsNz",
"metafield": Object {
"key": "g[^FhJnb(lsNz",
"namespace": "g[^FhJnb(lsNz",
"type": "g[^FhJnb(lsNz",
"value": "g[^FhJnb(lsNz",
},
"note": "g[^FhJnb(lsNz",
"orders_count": 9227457181777.92,
"phone": "g[^FhJnb(lsNz",
"sms_marketing_consent": Object {
"consent_collected_from": "g[^FhJnb(lsNz",
"consent_updated_at": "g[^FhJnb(lsNz",
"opt_in_level": "g[^FhJnb(lsNz",
"state": "g[^FhJnb(lsNz",
},
"user": Object {
"accepts_marketing": false,
"accepts_marketing_updated_at": "g[^FhJnb(lsNz",
"created_at": "g[^FhJnb(lsNz",
"currency": "DZD",
"email": "zav@eja.hm",
"first_name": "g[^FhJnb(lsNz",
"hashed_email": "g[^FhJnb(lsNz",
"hashed_first_name": "g[^FhJnb(lsNz",
"hashed_last_name": "g[^FhJnb(lsNz",
"hashed_phone": "g[^FhJnb(lsNz",
"id": "g[^FhJnb(lsNz",
"last_name": "g[^FhJnb(lsNz",
"last_order_id": "g[^FhJnb(lsNz",
"last_order_name": "g[^FhJnb(lsNz",
"marketing_opt_in_level": "g[^FhJnb(lsNz",
"note": "g[^FhJnb(lsNz",
"orders_count": 9227457181777.92,
"phone": "g[^FhJnb(lsNz",
"state": "INVITED",
"tax_exempt": false,
"total_spent": "g[^FhJnb(lsNz",
"updated_at": "g[^FhJnb(lsNz",
"verified_email": false,
},
"state": "INVITED",
"tax_exempt": false,
"total_spent": "g[^FhJnb(lsNz",
"updated_at": "g[^FhJnb(lsNz",
"verified_email": false,
},
],
"src": "SEGMENT",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ Object {
},
},
"event_id": "&yVQWLT2[LyiR]Lnd6^",
"event_name": "checkout_started",
"event_name": "payment_info_submitted",
"fbc": "&yVQWLT2[LyiR]Lnd6^",
"fpb": "&yVQWLT2[LyiR]Lnd6^",
"ga": "&yVQWLT2[LyiR]Lnd6^",
Expand Down Expand Up @@ -127,7 +127,7 @@ Object {
"customer": Object {},
},
"event_id": "&yVQWLT2[LyiR]Lnd6^",
"event_name": "checkout_started",
"event_name": "payment_info_submitted",
"identifiers": Array [],
},
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@ const action: ActionDefinition<Settings, Payload> = {
{ label: 'checkout_completed', value: 'checkout_completed' },
{ label: 'checkout_contact_info_submitted', value: 'checkout_contact_info_submitted' },
{ label: 'checkout_shipping_info_submitted', value: 'checkout_shipping_info_submitted' },
{ label: 'checkout_started', value: 'checkout_started' }
{ label: 'checkout_started', value: 'checkout_started' },
{ label: 'payment_info_submitted', value: 'payment_info_submitted' }
]
}
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ exports[`Testing snapshot for AnglerAi's saveUser destination action: all fields
Object {
"data": Array [
Object {
"accepts_marketing": true,
"accepts_marketing_updated_at": "^o*Om",
"addresses": Array [
Object {
"address1": "^o*Om",
Expand Down Expand Up @@ -33,6 +35,8 @@ Object {
"zip": "^o*Om",
},
],
"created_at": "^o*Om",
"currency": "AZN",
"default_address": Object {
"address1": "^o*Om",
"address2": "^o*Om",
Expand Down Expand Up @@ -60,48 +64,42 @@ Object {
"province_code": "^o*Om",
"zip": "^o*Om",
},
"email": "daz@mo.tw",
"email_marketing_consent": Object {
"consent_updated_at": "^o*Om",
"opt_in_level": "^o*Om",
"state": "^o*Om",
},
"first_name": "^o*Om",
"hashed_email": "^o*Om",
"hashed_first_name": "^o*Om",
"hashed_last_name": "^o*Om",
"hashed_phone": "^o*Om",
"id": "^o*Om",
"last_name": "^o*Om",
"last_order_id": "^o*Om",
"last_order_name": "^o*Om",
"marketing_opt_in_level": "^o*Om",
"metafield": Object {
"key": "^o*Om",
"namespace": "^o*Om",
"type": "^o*Om",
"value": "^o*Om",
},
"note": "^o*Om",
"orders_count": -79975814602424.31,
"phone": "^o*Om",
"sms_marketing_consent": Object {
"consent_collected_from": "^o*Om",
"consent_updated_at": "^o*Om",
"opt_in_level": "^o*Om",
"state": "^o*Om",
},
"user": Object {
"accepts_marketing": true,
"accepts_marketing_updated_at": "^o*Om",
"created_at": "^o*Om",
"currency": "AZN",
"email": "daz@mo.tw",
"first_name": "^o*Om",
"hashed_email": "^o*Om",
"hashed_first_name": "^o*Om",
"hashed_last_name": "^o*Om",
"hashed_phone": "^o*Om",
"id": "^o*Om",
"last_name": "^o*Om",
"last_order_id": "^o*Om",
"last_order_name": "^o*Om",
"marketing_opt_in_level": "^o*Om",
"note": "^o*Om",
"orders_count": -79975814602424.31,
"phone": "^o*Om",
"state": "ENABLED",
"tax_exempt": true,
"total_spent": "^o*Om",
"updated_at": "^o*Om",
"verified_email": true,
},
"state": "ENABLED",
"tax_exempt": true,
"total_spent": "^o*Om",
"updated_at": "^o*Om",
"verified_email": true,
},
],
"src": "SEGMENT",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,10 @@ const action: ActionDefinition<Settings, Payload> = {
...userFields
},
perform: (request, data) => {
const { user: userFields, ...payloadFields } = data.payload
const payload = {
src: 'SEGMENT',
data: [data.payload]
data: [{ ...userFields, ...payloadFields }]
}
return request(baseURL + customersEndpoint(data.settings.workspaceId), {
method: 'post',
Expand Down

0 comments on commit b3a8d63

Please sign in to comment.