Introducing MessageRank

• 3 min read

We believe that messaging is the new browser and the way results are displayed will drastically change in this new world.

If this is true, I’ll always remember what Greg Isenberg once told me:

In real estate, it’s all about location, location, location right? On the internet, it used to be about Pagerank, Pagerank, Pagerank. Companies like Yelp, TripAdvisor and Zillow become billion dollar companies overnight as they optimized for Pagerank and millions of people shifted to search as a daily behavior. When everyone spends all of their time in messaging, a new ranking has to emerge.


At Assist, we strive to bring people the Top 3 results from a wide variety of local services to any messaging platform. We do this by aggregating the best local services and then determining the Top 3 results for each person.

Some people have asked how we rank services on Assist. Here’s a quick overview of how we think about providing the best experience to every person and how services can think about integrating with Assist.

To start, we have a baseline for all services on Assist. At a high level, we look at:

  • Uptime (Ex. All services must have at least 98% uptime)
  • Coverage (Ex. Don’t show services if it doesn’t exist in current location)
  • Quality (Ex. Service always works, handles customer service, etc)

Then we rank them by technical type. We classify all APIs into 3 different types. The more robust your API, the better native experience on Assist, the higher ranking your service gets.

The following descriptions are designed to showcase three different levels of API types in a very basic, non-technical way. It’s a little window into how we rank services and integrations based on the level of API that can be provided to Assist. The “Type III” API is the preferred type and always ranks the highest.

Type I

A “Type I” API is the starter level. This is a read only API which can include:

  • Location
  • Price quoting
  • Inventory
  • Time estimates
  • Listings
GET /v1/coverage
Parameters
lat    - latitude of the user's location
long - longitude of the user's location
Response
{
meta: {
code: 200
}
...
"covered": true
...
}
GET /v1/items
Parameters
lat    - latitude of the user's location
long - longitude of the user's location
limit - number of results to return
offset - used to page through results
Response
{
meta: {
code: 200
}
...
"total_count": 15,
"items": [
// An array of items
],
...
}

Type II

A “Type II” API is the intermediate level. This is a read / write API which can include:

  • Queueing
  • Booking
  • Scheduling
  • Estimates on price and time
POST /v1/orders
Parameters

item_id - item's id
user_name - user's full name
user_email - user's email
user_phone - user's phone number
Response

{
meta: {
code: 200
}
...
"id": "id_12345",
"created": "2016-01-14T10:04:03Z",
"status": "...",
...
}

Type III

A “Type III” API is the pro level and preferred level for Assist. We feature Type III APIs over any other type. This is a full / commerce API which includes:

  • Full end to end ordering / scheduling
  • Payment included and collected on the Assist platform

Payment: There are 3 possible scenarios here:
 
 1. Your payment API end point needs credit card info as parameters. We are able to securely (over https) collect that data through a web form and pass them to you. Here’s an example of what that looks like

POST /v1/transactions
Parameters
full_name - customer's name
card_number - credit card #
card_sc - credit card security code
card_exp_mm - credit card expiration month
card_exp_yyyy - credit card expiration year
...

2. Your payment framework deals with partners like Assist on a single channel, no visibility on who the buyers are. In that case you will have on file our company payment info and simply charge us per transaction using a customer_id that represents us. On our end we collect payment data from our customers through Stripe

POST /v1/partners/:partner_id/transactions
Parameters
quote_id - the ID of a previously generated transaction quote
...

3. Full Stripe integration on both ends. You create a company profile on our Stripe account which creates a merchant account for you, we collect the customers’ payment info (through the Stripe form), and charge the customer on your behalf. Stripe automatically deposits the money to your ACH payout.

Here are the payment screens on Assist:


Other API types

  • Heartbeat API: Up/down time and latency alerts. This helps us to not showcase your service if your service is down or experience problems.

Search results were informational links. APIs are actionable with commerce, scheduling, booking, and more. The future will be about APIs. How we rank them we are calling MessageRank. Build them.

Want to integrate with Assist? We’d love to hear from you here.

← Introducing Resy on Assist
Introducing StubHub + Assist: Your best 3 tickets →

Subscribe to Shane Mac

Subscribe to the newsletter and unlock access to member-only content.

You've successfully subscribed to Shane Mac
Welcome! You are now a Shane Mac subscriber.
Welcome back! You've successfully signed in.
Success! You are now a paying member and have access to all content.
Success! Your billing info is updated.
Billing info update failed.