Perkville Destination

Destination Info

Perkville is a customer reward and referral platform - similar to airline mile programs - that integrates with e-commerce, point of sale, membership and scheduling systems to provide a seamless experience that drives referrals and loyalty.

This destination is maintained by Perkville. For any issues with the destination, contact the Perkville Support team.

The Perkville Destination is in beta, which means that they are still actively developing the destination. To join their beta program, or if you have any feedback to help improve the Perkville Destination and its documentation, contact the Perkville support team.

Getting Started

  1. From the Destinations catalog page in the Segment App, click Add Destination.
  2. Search for “Perkville” in the Destinations Catalog, and select the “Perkville” destination.
  3. Choose which Source should send data to the “Perkville” destination.
  4. Go to Perkville > Settings > Apps while logged in as an admin.
  5. Under Connect Segment, click “Generate Token” and then “Accept.”
  6. Click “Show token” under the Segment app, then copy the token.
  7. Paste the token into the “API Key” field for the “Perkville” destination settings in Segment.

Supported methods

Perkville supports the following method, as specified in the Segment Spec.


Send Track calls to award points for allowlisted actions. For example:

analytics.track('Order Completed', {
  order_id: 'o283h08fh2390f923uofu23',
  revenue: 9.99,
  email: ''


You should only send the track events you need to Perkville. You may use Segment Destination Filters to prevent unwanted events being sent to Perkville. You must allowlist the names of the events you need in the Perkville destination settings in the Segment App. Segment sends those events to Perkville for you, and returns an error if the event is not allowlisted.

Required Values

The only required event value is email. This must be present within the event,, or event.context.traits objects.

Quantity Calculation

Any events that have an order_id will be treated as spend transactions. The quantity of points given will reflect the event’s revenue, value, or total in that priority order. Per the eCommerce spec, if the order event name includes “Refund,” points will be removed from the Perkville account associated with the provided email.

All other events default to a quantity of 1.


You can send computed traits and audiences generated using Engage to this destination as a user property. To learn more about Engage, schedule a demo.

For user-property destinations, an identify call is sent to the destination for each user being added and removed. The property name is the snake_cased version of the audience name, with a true/false value to indicate membership. For example, when a user first completes an order in the last 30 days, Engage sends an Identify call with the property order_completed_last_30days: true. When the user no longer satisfies this condition (for example, it’s been more than 30 days since their last order), Engage sets that value to false.

When you first create an audience, Engage sends an Identify call for every user in that audience. Later audience syncs only send updates for users whose membership has changed since the last sync.

Real-time to batch destination sync frequency

Real-time audience syncs to Perkville may take six or more hours for the initial sync to complete. Upon completion, a sync frequency of two to three hours is expected.


Segment lets you change these destination settings from the Segment app without having to touch any code.

Setting Description
string. Generate the token in Settings > Apps. Click “show token” under the Segment app, then copy it and paste the value here.
Business ID
string. Your Perkville business ID. Reach out to for this information.
Event to Perk Map
text-map, defaults to {}.

Map your event names to the perk you would like to award points for. For instance, “Checked In” > 123456. This will award all “Checked In” events with perk 123456.
Location ID
string. Your Perkville Location ID. Reach out to for this information.
Send email
boolean, defaults to FALSE .

If we post a transaction, send a transactional email to the email address provided in the event. Set to False if you want to suppress emails for this flow.

This page was last modified: 08 Mar 2022

Get started with Segment

Segment is the easiest way to integrate your websites & mobile apps data to over 300 analytics and growth tools.
Create free account