Segment Integration
Written by Matt Panton
Updated over a week ago

The SMRT Segment integration allows you to sync customer data to other online services in realtime. Popular use cases include behavioral marketing automation using, sending out customer feedback surveys using, and customer behavior analytics using Mixpanel.

Below, we outline the customer data and customer events SMRT sends to the Segment data platform to give you an overview of what's possible.

Pickup / Delivery related real time events

  • Pickup Completed: Triggered when a driver picked up or delivered to a customer using our delivery app.

    • Event Data:

      • driver: name of driver

      • route: name of route

      • address: Structured address information for pickup/delivery

      • had_pickup: Whether the visit resulted in a new pickup (aka new order)

      • had_delivery: Whether the visit resulted in one or more items being delivered.

      • total_pickups: Number of new orders created

      • total_deliveries: Number of bags delivered.

  • Pickup Missed: Triggered when a driver completes a customer stop in our delivery app, but there was no clothes to pickup nor deliver.

  • Pickup Scheduled: Triggered when a pickup request was scheduled manually either by the customer on the website or by an employee in the POS. The event contains a property scheduled_by set to either Employee or Customer.

  • Customer Canceled Pickup: The customer cancelled their scheduled pickup request, either through the website or by replying "No" to the nightly text message reminder.

  • Customer Requested Regular Pickups: The customer made a request through the website to be added to a regular delivery route.

Order lifecycle related real time events

  • Order Created: Triggered when an order was created for the customer, either in the POS or delivery app. Note that a customer may have multiple orders created in a day.

  • Order Ready: Triggered when an order became ready, awaiting to be picked up by the customer or to be delivered.

  • Order Returned: Triggered when an order was returned to the customer. It was either picked up at a store, or delivered by a driver.

  • Order Line Item Returned: One event is triggered for each line item returned to the customer. The department of the line item is included. The departments are business specific but usually include Dry Cleaning, Laundry, Alteration, Wedding etc. The primary idea behind this event is to allow you to setup automated cross-promotions to introduce customers to services they haven't used yet.

All above Order events contain the following data:

  • order_id: Order Identifier

  • agent: The agent (sales source) where the order was created

  • customer_brand: The brand the customer is part of, i.e the name of the business

  • value: Total amount of order, including discounts and sales tax

  • revenue: same as value

  • sold_by: Name of the employee that originally created the order (driver or counter CSR)

  • returned_by: Name of the employee that returned the order to the customer

  • discount: if the order has a discount, its information is specified here in subfields such as name, description and value.

Customer related real time events

  • New Customer Signup: Triggered when a customer was created in the POS or customer website. Event includes a source attribute specifying which (POS or Website).

  • Customer Visit: Triggered when a customer completes one of below transactions. Triggered at most once a day.

    • Driver pickup/delivery

    • Store drop/pickup

    • New customer signup

  • Customer Lost: Triggered when a customer is considered lost in SMRT. For example, a bi-weekly customer is considered lost when she haven't had a visit (as described above) for over a month.

  • Customer Birthday: Triggered yearly on the customer's birthday. Useful for sending birthday wishes or promotions. A custom birthday field must be set up.

Customer Data

Below we list the customer data we forward to segment. This data can be used to segment customers, and personalize outbound marketing communication.

  • email: customer email address

  • name: Full account name. For corporate accounts this is the name of the business. For regular customers, this is the first + last name of the primary contact.

  • firstName: Account primary contact first name

  • lastName: Account primary contact last name

  • phone: Formatted, primary phone number, e.g (415) 601 5610

  • isMobile: Whether the primary phone number was detected as a cell phone (true or false).

  • agent: The primary sales source of a customer, such as the name of a store or route.

  • paymentTerm: POS, Statement or AutoPay. How the customer pays.

  • hasCreditCard: whether the customer has a card on file or not.

  • createdAt: date and time the customer signed up (ISO 8601)

  • lastVisit: date and time for the last time the customer "visited" the business (successful driver stop, store visit)

  • deliveryPreference: One of: No Delivery Preference; Route Approval Pending; Route Regular; Delivery Address Declined; Will Call; Deliver with Master

  • link: Customer specific URL that allows the customer, upon clicking it, to go directly to their online account.

  • brand: For businesses operating multiple brands, this contains the name of the brand the customer is part of.

  • address: contains full address information including street, city, state, postalCode and country.

  • receiveEmails: Whether the customer wants to receive emails messages

  • receiveTexts: Whether the customer wants to receive text messages

  • group: Name of the group the customer belongs to, if any

  • accountDiscount: if the customer has a discount on the account, its information is specified here in subfields such as name, description and value.

  • customFields: an array of customer field names and values, e.g Referral Source: Website

  • demographic: customer spending demographic, value between 5-1, with 1 being your top spenders.

When using these fields in Outbound, you can dynamically call them like so: ##{{ 'first_name' | UserAttribute }}

Did this answer your question?