Skip to contentSkip to navigationSkip to topbar
On this page
Looking for more inspiration?Visit the
(information)
You're in the right place! Segment documentation is now part of Twilio Docs. The content you are used to is still here—just in a new home with a refreshed look.

Friendbuy Cloud Mode (Actions) Destination


Destination Info
  • Accepts Page, Alias, Group, Identify and Track calls.
  • Refer to it as Friendbuy (Cloud Destination) in the Integrations object
  • This integration is partner owned. Please reach out to the partner's support for any issues.

Friendbuy(link takes you to an external page) powers referral programs for e-commerce merchants of all sizes, providing an easy solution to launch Refer-a-Friend programs and accelerate growth through word of mouth.

Friendbuy's cloud mode Segment integration allows you to send data to Friendbuy from your data center so that Friendbuy can act on it. For example, you could trigger a reward when a referred customer performs a rewardable event or send customer data to use in your Friendbuy-managed loyalty/rewards program.

If you're using Segment with a Friendbuy referral program you probably want to use the web destination to configure the Friendbuy JavaScript and to send customer and purchase data directly to Friendbuy as the user interacts with your web site. However, if you also want to send events from your data center to Friendbuy, such as purchases due to recurring transactions, you should also use this cloud mode destination action, which provides an interface between Segment's identify and track calls and Friendbuy's MAPI (merchant API).


Overview

overview page anchor

The Friendbuy cloud mode destination sends information about your customers and their actions to Friendbuy. It supports the following Friendbuy MAPI events(link takes you to an external page).


Benefits of Friendbuy Cloud Mode (Actions) vs Friendbuy Classic

benefits-of-friendbuy-cloud-mode-actions-vs-friendbuy-classic page anchor

Friendbuy Cloud Mode (Actions) is the Segment cloud mode destination that works with Friendbuy's current platform. The classic Segment Friendbuy destination works with Friendbuy's legacy platform.


(information)

Info

Please contact your Friendbuy Customer Success Manager or email support@friendbuy.com to set up Friendbuy's Segment integration.

  1. You need your Friendbuy MAPI Key and MAPI Secret to use the Friendbuy cloud mode integration. Contact your Friendbuy Onboarding & Implementation Representative to have these generated for you. (These are not the same as the Merchant ID and Secret Key that are available in your Friendbuy account.)
  2. From the Segment web app, click Catalog, then click Destinations.
  3. Filter the destinations on Friendbuy in the Catalog and select Friendbuy (Cloud Destinaton). Click Configure (Cloud Destination) to configure the Friendbuy destination, and choose which of your sources to connect the destination to.
  4. Give the destination a name, and fill in the settings manually.
  5. On the Basic Settings page enter your Friendbuy MAPI Key and Friendbuy MAPI Secret values from step one, and click Save Changes.
  6. Select the Mappings tab. Click the + New Mapping button. A dialog will pop up showing the supported Friendbuy actions. Click the desired type of action you want to send to Friendbuy and configure it using the steps described below.

Property nameTypeRequiredDescription
Friendbuy MAPI Keystring
required

Contact your Friendbuy account manager to generate your Friendbuy MAPI key and secret.


Friendbuy MAPI Secretpassword
required

See Friendbuy MAPI Key.


Build your own Mappings. Combine supported triggers with the following Friendbuy (Cloud Destination)-supported actions:

(information)

Mapping limits per destination

Individual destination instances have support a maximum of 50 mappings.

Track Custom Event

track-custom-event page anchor

Record when a customer completes any custom event that you define.

Track Custom Event is a Cloud action.

Property nameTypeRequiredDescription
Event TypeSTRING
required

The type of the event to track.


Event PropertiesOBJECT
required

Object containing the properties for the event being tracked. All of the fields in this object will be sent in the root of the Friendbuy track event.


Event IDSTRING

Optional

An identifier for the event being tracked to prevent the same event from being rewarded more than once.


Customer IDSTRING
required

The user's customer ID.


Anonymous IDSTRING

Optional

The user's anonymous id


EmailSTRING
required

The user's email address.


Page URLSTRING

Optional

The URL of the web page the event was generated on.


Page TitleSTRING

Optional

The title of the web page the event was generated on.


User AgentSTRING

Optional

The browser's User-Agent string.


IP AddressSTRING

Optional

The users's IP address.

Record when a customer signs up for a service.

Track Sign Up is a Cloud action.

Property nameTypeRequiredDescription
Customer IDSTRING
required

The user's customer ID.


Anonymous IDSTRING

Optional

The user's anonymous ID.


EmailSTRING
required

The user's email address.


New Customer FlagBOOLEAN

Optional

Flag to indicate whether the user is a new customer.


Loyalty Program StatusSTRING

Optional

The status of the user in your loyalty program. Valid values are "in", "out", or "blocked".


First NameSTRING

Optional

The user's given name.


Last NameSTRING

Optional

The user's surname.


NameSTRING

Optional

The user's full name.


AgeNUMBER

Optional

The user's age.


BirthdaySTRING

Optional

The user's birthday in the format "YYYY-MM-DD", or "0000-MM-DD" to omit the year.


Coupon CodeSTRING

Optional

Coupon code that customer supplied when they signed up.


Friendbuy Attribution IDSTRING

Optional

Friendbuy attribution ID that associates the customer who is signing up with the advocate who referred them.


Friendbuy Referral IDSTRING

Optional

Friendbuy referral code that associates the customer who is signing up with the advocate who referred them.


Custom AttributesOBJECT

Optional

Custom attributes to send to Friendbuy. You should pass an object whose keys are the names of the custom attributes and whose values are strings. Non-string-valued attributes will be dropped.


Page URLSTRING

Optional

The URL of the web page the event was generated on.


Page TitleSTRING

Optional

The title of the web page the event was generated on.


User AgentSTRING

Optional

The browser's User-Agent string.


IP AddressSTRING

Optional

The users's IP address.

Create a new customer profile or update an existing customer profile.

Track Customer is a Cloud action.

Property nameTypeRequiredDescription
Customer IDSTRING
required

The user's customer ID.


Anonymous IDSTRING

Optional

The user's anonymous id.


EmailSTRING
required

The user's email address.


First NameSTRING

Optional

The user's given name.


Last NameSTRING

Optional

The user's surname.


NameSTRING

Optional

The user's full name. If the name trait doesn't exist then it will be automatically derived from the firstName and lastName traits if they are defined.


AgeNUMBER

Optional

The user's age.


BirthdaySTRING

Optional

The user's birthday in the format "YYYY-MM-DD", or "0000-MM-DD" to omit the year.


LanguageSTRING

Optional

The user's language.


CountrySTRING

Optional

The user's country.


StateSTRING

Optional

The user's state.


CitySTRING

Optional

The user's city.


StateSTRING

Optional

The user's postal code.


Customer SinceSTRING

Optional

The date the user became a customer.


Loyalty StatusSTRING

Optional

The status of the user in your loyalty program. Valid values are "in", "out", or "blocked".


New Customer FlagBOOLEAN

Optional

Flag to indicate whether the user is a new customer.


Custom AttributesOBJECT

Optional

Custom attributes to send to Friendbuy. You should pass an object whose keys are the names of the custom attributes and whose values are strings. Non-string-valued attributes will be dropped.


Page URLSTRING

Optional

The URL of the web page the event was generated on.


Page TitleSTRING

Optional

The title of the web page the event was generated on.


User AgentSTRING

Optional

The browser's User-Agent string.


IP AddressSTRING

Optional

The users's IP address.

Record when a customer makes a purchase.

Track Purchase is a Cloud action.

Property nameTypeRequiredDescription
Order IDSTRING
required

The order ID.


Purchase AmountNUMBER
required

Purchase amount to be considered when evaluating reward rules.


CurrencySTRING
required

The currency of the purchase amount.


CouponSTRING

Optional

The coupon code of any coupon redeemed with the order.


Friendbuy Attribution IDSTRING

Optional

Friendbuy attribution ID that associates the purchase with the advocate who referred the purchaser.


Friendbuy Referral IDSTRING

Optional

Friendbuy referral code that associates the purchase with the advocate who referred the purchaser.


Gift Card CodesSTRING

Optional

An array of gift card codes applied to the order.


ProductsOBJECT

Optional

Products purchased.


Customer IDSTRING

Optional

The user's customer ID.


Anonymous IDSTRING

Optional

The user's anonymous ID.


EmailSTRING

Optional

The user's email address.


New Customer FlagBOOLEAN

Optional

Flag to indicate whether the user is a new customer.


Loyalty Program StatusSTRING

Optional

The status of the user in your loyalty program. Valid values are "in", "out", or "blocked".


First NameSTRING

Optional

The user's given name.


Last NameSTRING

Optional

The user's surname.


NameSTRING

Optional

The user's full name.


AgeNUMBER

Optional

The user's age.


BirthdaySTRING

Optional

The user's birthday in the format "YYYY-MM-DD", or "0000-MM-DD" to omit the year.


Custom AttributesOBJECT

Optional

Custom attributes to send to Friendbuy. You should pass an object whose keys are the names of the custom attributes and whose values are strings. Non-string-valued attributes will be dropped.


Page URLSTRING

Optional

The URL of the web page the event was generated on.


Page TitleSTRING

Optional

The title of the web page the event was generated on.


User AgentSTRING

Optional

The browser's User-Agent string.


IP AddressSTRING

Optional

The users's IP address.


There are four steps to configure a Segment mapping.

  1. Set up event trigger: Choose the event trigger, which is the event type (such as Identify) or event name (such as Order Completed) for events that should be sent to Friendbuy.
  2. Test event trigger: Find a sample event in your Segment event stream that matches the trigger you defined in step one.
  3. Configure action fields: Define how the fields in the Segment event are mapped to fields in the Friendbuy track event.
  4. Review mappings: Verify that the fields in the sample event are mapped correctly.
(information)

Info

If you use the Friendbuy web mode destination to handle events generated in the browser as recommended, then when you configure the event trigger in the cloud mode destination you might need to add an extra condition to prevent events that come from Analytics.js calls from being handled by both the web and cloud mode destinations. For example, if you configure a Track Purchase action in the cloud mode destination to handle purchases for a recurring subscription, you might want to add an event property named source with the value data center to the recurring purchase events that you submit to Segment's REST interface. Then, add a condition on that property in the action's trigger so that only Order Completed events in which the Event Property source has the value data center are handled by that action. This prevents ordinary purchases sent from Analytics.js and processed by the Friendbuy cloud mode destination from being sent a second time by the web mode destination.

Configuring action fields

configuring-action-fields page anchor

In the configure action fields step, the mapping is pre-populated with mappings from the standard Segment event properties to the corresponding Friendbuy fields. You can edit each field if you want to populate that field from a different Segment event property or not send the field at all.

Custom attributes

custom-attributes page anchor

In the Track Customer, Track Purchase, or Track Sign Up mappings you can use the Custom Attributes field to send additional custom properties that aren't included in the predefined field names for that event. Use the mapping's Custom Attributes field to specify the path to a JSON object that contains those custom attributes. Then, when your code makes its Segment Analytics.js call, include an object at the path that you configured containing your custom attributes. These attributes will then be included in the additionalProperties object in the Friendbuy MAPI call.

For example, if your Track Purchase call has the default Custom Attributes value of properties.friendbuyAttributes, and if your track purchase call is:

1
{
2
"type": "track",
3
"event": "Order Completed",
4
"source": "data center",
5
"userId": "customer-12345",
6
"properties": {
7
"order_id": "82f250a3-32eb-40be-95fc-77e685ed8448",
8
"email": "joe.customer@example.com",
9
"total": 54.82,
10
"currency": "USD",
11
"friendbuyAttributes": {
12
"orderNumber": "3",
13
"promotion": "black friday"
14
}
15
}
16
}

then the Friendbuy MAPI purchase call(link takes you to an external page) will be:

1
{
2
"orderId": "82f250a3-32eb-40be-95fc-77e685ed8448",
3
"email": "joe.customer@example.com",
4
"customerId": "customer-12345",
5
"amount": 54.82,
6
"currency": "USD",
7
"additionalProperties": {
8
"orderNumber": "3",
9
"promotion": "black friday"
10
}
11
}

Note that a Friendbuy MAPI call is limited to a maximum of 10 additional properties, additional properties' values must be strings, and the maximum length of an additional property's value is 128 characters. Additional properties that don't comply with these restrictions are dropped.

To allow Friendbuy to act on an event that isn't one of the standard events described in the Overview, use a custom event.

To configure a custom event:

  1. Click New Mapping and choose Track Custom Event.
  2. When you configure the event trigger, for the Event Name choose the name of the Segment event you're tracking. For example, if you want to reward on app downloads that you're tracking with { "type": "track", "event": "Downloaded", ... }, use Downloaded as the Event Name in the trigger.
  3. When you configure your action fields, you can accept the default Event Type of event which will cause Friendbuy to receive track events with the same names as the Segment events. If you want to rename the Friendbuy events, you can replace the Event Type with a different value, such as the static string download.
  4. Event Properties is set from the path properties by default, which means that all the properties that you include in your Segment analytics.track call are passed to Friendbuy. If you only want to pass custom attributes to Friendbuy, you need to segregate the fields to pass to Friendbuy into an object and then specify the path to that object, similar to what is described above in Custom Attributes.
  5. To prevent an event that is tracked multiple times from being rewarded more than once, you should include a deduplication ID in your event as described in Friendbuy's Track Custom Event documentation(link takes you to an external page). You can either pass an explicit Event ID field in your event (defaulting to the deduplicationId property) or you can create the Event ID out of other event properties (such as the userId, a ., and the properties.downloadId in the above example).