PingPilot

A client asked for one small thing. It turned into a patented product, and years later a pre-registered test of the patent found one promise that did not hold up.

My role

Co-founder and Chief Product Officer

Company
PingPilot
Started inside
Scorch, an agency
Years
2016 to 2018
Patent
One of three named inventors on US 10,868,915
  1. Owned the product as co-founder and Chief Product Officer, and decided what got built next.
  2. Designed the mobile and responsive web apps, wrote the design documents, built some of the interface code, and handled positioning and marketing.
  3. Worked out with Brandon Brumage how calls get sent to the right person: the routing the patent describes.
  • Patent US 10,868,915, granted December 15, 2020 and still in force
  • 6 months to a test version, with the patent filed at month 8
  • 6 ways to reach each message from a single link: phone, text, chat, video, email and calendar
  • 71 of 81 situations where the patent's even-sharing promise failed, in my own pre-registered simulation

Summary

The brief was one sentence: let a customer start a conversation from a PDF. I answered a bigger question instead. PingPilot lets a customer reach a business from anything that can hold a web link, and reach the same person every time they come back. That design is written down in United States patent 10,868,915.

I started the product inside Scorch, the agency where I was Interactive Creative Director, and helped turn it into its own company. Years later I checked the patent's promises with a pre-registered simulation. The part the product sells held up. The promise to share customers out evenly across the staff did not.

Who was involved

  • Brandon Brumage Full-stack engineer and fellow inventor. Built the back end, the pipeline that tests and ships every change, and the Amazon Web Services hosting.
  • Seth Hein iOS developer. Turned Robert's Sketch designs into the iPhone app, working against Brandon's API.
  • Thomas Horner Software engineer. Set up the automated tests that check the code.
  • Brand and voice Bryan Roach designed the logo, Sarah Hamilton illustrated the outer-space brand, Colette Kolar turned it into website designs, and Jacqui Germain wrote the character's voice.
  • Quality Nathan Doyle, Mindy Bollegar and Lindsay Newhouse tested each release and consulted on brand identity.
  • Grad Conn Microsoft's chief marketing officer at the time. Gave the team unfettered access to his team's use cases.
  • Michael Lauricella Atlassian's integration evangelist. Met the team at Web Summit in Lisbon and brought them into AtlasCamp twice, to demo video calling built on Atlassian's new APIs.
  • Chris Buehler Asked us to look at putting a link in a PDF, and paid to file the patent.
  • Partner salespeople Sold to one named company at a time, Microsoft's Office 365 sales engineers among them. The product borrowed their words.
Figure 3 from US patent 10,868,915: a flowchart headed Search Signal Agent Pool. It branches on whether any agent is online, removes agents the customer has banned, compares feedback scores to pick the highest rated, then breaks ties on the number of customers an agent already has before assigning the customer to an agent.
Figure 3 of the patent. How the system picks which staff member gets a customer, as filed, and the part I later tested in a simulation.

Context

The request I was given was small. Chris Buehler wanted to be able to start a conversation from a PDF. That was the whole brief.

The patent names two bigger problems. A customer usually has to hand over their contact details before a business will talk to them, which is a barrier at the exact moment they are ready to buy. And every time that customer comes back they get a different member of staff, so no history builds up and they explain themselves again from the beginning.

Approach

A PDF is just a document that can hold a link. So instead of asking how to start a conversation from a PDF, I asked how to start one from anything that can hold a web link. That is what got filed: the patent never mentions PDFs, and it treats phone, text message, chat and web link as equal ways in.

I did not design it from the outside. We got to work with experienced salespeople at partner companies who sold to one named company at a time, and the product borrowed their words: accounts (the target companies), personas (types of buyer), verticals (industries), one-to-one.

Design

A thread, meaning one ongoing conversation, belongs to a company rather than to a person. The number a buyer calls belongs to the thread, and whoever picks it up sees everything that company has already said. Each thread hands out its own web page, phone number and a few lines of code to paste into a page, so it is reachable the moment it exists. From that one link a buyer can reach the team six ways: phone, text, chat, video, email, or a time booked on the team's calendar.

The screens below are from my design for the mobile app, redone in 2020 under a new name, HMU. That version does not use the patented routing.

How it routed

One purchase, four buyers, six ways in

Northwind Industrial is buying scheduling software for its 300 repair technicians from Brightline, a made-up vendor. Follow the four people who have to agree, as each one reaches Brightline's sales team on their phone from a link in something they were reading.

The buyer

Northwind Industrial

  • Dana
  • Priya
  • Marcus
  • Ellen

Before it signs

  • Price for 300 technicians open
  • Security review open
  • A walkthrough for the dispatchers open
  • Cost over three years open
  • Contract terms open
Dana's phone
Books

Pricing guide.epub, page 7

The sales team

Nobody at Northwind Industrial has talked to Brightline yet

The seller

Brightline sales

  • Ada Account Executive
  • Boone Solutions Engineer
  • Esse Customer Success

Dana runs field service at Northwind Industrial, and she needs to know what Brightline costs for 300 technicians. She is reading Brightline's pricing guide on her phone. Page 7 has a link.

1 of 6

Reconstructed: the product sat behind a login and was never archived. Who picks up whom comes from the same ranking code the measurement below runs.

Placing a call. The number the customer sees belongs to the thread, so the salesperson picks a thread before the call goes out.
Answering in chat. Same person, different way of getting in touch, one thread.
The customer-facing page for Health Sales EMEA, opened on a phone at hmu.microsoft.com/health-blogs: five team avatars led by Andrew Lambert, who is online, then six tiles for Video call, Chat, Text, Call, Email and Book a time, with the thread number (800) 888-8888 on Text and Call, and a booking card open on Tuesday, October 13 with 10:30 AM picked. This screen is a mockup built for this site from the 2020 HMU design.
Six ways in, from one link. The thread's link opens one page where a buyer picks how to reach the team: video, chat, text, a call, email, or a time on the team's calendar.
Threads list: Health Sales EMEA 6 contacts, Ignite Event 38, Azure Enterprise 61, Retail Sales South 82, Enterprise Support 122, Digital Transformation 51, ID Security Atlanta 20, each with stacked avatars and a last-touch time. My design for the mobile app, redone in 2020 under a new name, HMU. This version does not use the patented routing.
One thread per campaign. Threads are named for a campaign, so a whole buying group shares one.

More screens

Onboarding. Onboarding is the few screens that greet someone opening the app for the first time. Here four cards make the pitch and get out of the way. Everything after this is one list.
Working a thread. One thread per campaign, counted by each way in, with every way to reach it on one screen.
Opening a thread. A thread is reachable the moment it exists. Nothing has to be built for it first.
Presenting a document. The brief was to start a conversation from a PDF. Here the PDF goes the other way, into a conversation already running.
Activity home: a week strip with the 22nd selected, then today: Anna Alimbetova video 10:35A, Edward Harrington mail 11:00A, Diane Rowe missed call 11:30A, Ronald Wilson video, Kevin Barkley chat, each row tagged with its account. My design for the mobile app, redone in 2020 under a new name, HMU. This version does not use the patented routing.
The day, by channel. A salesperson's day is one list, and the way each person got in touch is an icon on the row, not a separate inbox to remember to check.
Contact screen for Anna Alimbetova, Program Director at Cigna Global: call, chat, video and email buttons, then Sales Stage “Sales Qualified Prospect”, Customer Type “Economic Buyer”, connection avatars and attached SOW files. My design for the mobile app, redone in 2020 under a new name, HMU. This version does not use the patented routing.
Who they are, and what is open. Four ways to reach one person, and underneath, what a salesperson needs to know to decide whether to reach out yet.
Anna’s Connections, grouped by company: Cigna Global lists a chief financial officer, a director of administration, a business development director, a chief administration officer and an information security director; Microsoft lists two more. My design for the mobile app, redone in 2020 under a new name, HMU. This version does not use the patented routing.
The company, not just the contact. A buyer comes with their whole company's org chart, and the conversation keeps it. A shared email inbox could never do that.
A Present sheet over the video room offering iCloud Drive, an HMUploads folder, and recent files: Cigna Global Health Cloud.pdf at 3.1MB and SOW2020.docx at 4.6MB. My design for the mobile app, redone in 2020 under a new name, HMU. This version does not use the patented routing.
Back where it started: a PDF. The request that started all of this was to begin a conversation from a PDF. Here the document travels the other way, into a conversation already running.

Measurement

Campaign Team sheet: seven sales staff, each a toggle and a rating. Arthur Frazier 4.98 switched on, Wallace Evans 4.94 on, Victoria Duncan 4.99 off, Calvin Howard 4.98 off. My design for the mobile app, redone in 2020 under a new name, HMU. This version does not use the patented routing. The names are made up.
Who gets the next customer. Everything a manager can change sits on one sheet: a switch and one score per person. The top scorer is switched off, so the next customer goes to the best person online.

The system picks a staff member by their rating, with two fixed bonuses added in. One line in the patent says those bonuses will "provide load balancing amongst the agents", meaning they would share customers out evenly across the staff. We wrote that promise before we had any proof of it.

Years later I built a computer simulation to check it. I tried 81 situations, changing how close together the staff ratings sat, how big the team was and how many customers came in, and ran each one 200 times. I wrote down the pass mark before running any of them, so I could not move the goalposts.

The simulation tests what the patent says, not real calls. The records of real calls from back then were not kept.

Simulation results

Does a flat +0.50 balance the load?

The patent says the rating adjustments “provide load balancing amongst the agents”, meaning they share the work out evenly across staff. That is a promise about the real world, and a patent examiner never has to check one. So I wrote the test down before I wrote any of the code: the goal, the situations to try, and the point at which I would call the promise a failure.

The prediction
The rating bonuses in the patent move customers a real distance toward an even split among the staff, across the whole range of ratings a real team might have.
If it fails
The bonuses make no real difference. Customers pile up on the highest-rated people at about the same rate as if you just ranked everyone by rating.
Pass mark
The bonuses had to close at least 50% of the distance to an even split, in every one of the 81 situations tried. Below 20% counts as an outright failure for that situation.
Result
DIDN'T HOLD Met in 10 of 81 situations; the prediction needed every one. It failed outright in 31 of them.
fail 0.20pass · 0.50narrow4.1–4.8narrow spread · team of 5 · 100 enquiries · 0% repeat customers. Closed 66% of the gap (supported)narrow spread · team of 5 · 100 enquiries · 30% repeat customers. Closed 59% of the gap (supported)narrow spread · team of 5 · 100 enquiries · 70% repeat customers. Closed 47% of the gap (unsupported)narrow spread · team of 5 · 1,000 enquiries · 0% repeat customers. Closed 43% of the gap (unsupported)narrow spread · team of 5 · 1,000 enquiries · 30% repeat customers. Closed 50% of the gap (unsupported)narrow spread · team of 5 · 1,000 enquiries · 70% repeat customers. Closed 63% of the gap (supported)narrow spread · team of 5 · 10,000 enquiries · 0% repeat customers. Closed 36% of the gap (unsupported)narrow spread · team of 5 · 10,000 enquiries · 30% repeat customers. Closed 40% of the gap (unsupported)narrow spread · team of 5 · 10,000 enquiries · 70% repeat customers. Closed 49% of the gap (unsupported)narrow spread · team of 20 · 100 enquiries · 0% repeat customers. Closed 46% of the gap (unsupported)narrow spread · team of 20 · 100 enquiries · 30% repeat customers. Closed 45% of the gap (unsupported)narrow spread · team of 20 · 100 enquiries · 70% repeat customers. Closed 38% of the gap (unsupported)narrow spread · team of 20 · 1,000 enquiries · 0% repeat customers. Closed 71% of the gap (supported)narrow spread · team of 20 · 1,000 enquiries · 30% repeat customers. Closed 77% of the gap (supported)narrow spread · team of 20 · 1,000 enquiries · 70% repeat customers. Closed 59% of the gap (supported)narrow spread · team of 20 · 10,000 enquiries · 0% repeat customers. Closed 54% of the gap (supported)narrow spread · team of 20 · 10,000 enquiries · 30% repeat customers. Closed 51% of the gap (supported)narrow spread · team of 20 · 10,000 enquiries · 70% repeat customers. Closed 47% of the gap (unsupported)narrow spread · team of 50 · 100 enquiries · 0% repeat customers. Closed 18% of the gap (killed)narrow spread · team of 50 · 100 enquiries · 30% repeat customers. Closed 20% of the gap (killed)narrow spread · team of 50 · 100 enquiries · 70% repeat customers. Closed 22% of the gap (unsupported)narrow spread · team of 50 · 1,000 enquiries · 0% repeat customers. Closed 71% of the gap (supported)narrow spread · team of 50 · 1,000 enquiries · 30% repeat customers. Closed 56% of the gap (supported)narrow spread · team of 50 · 1,000 enquiries · 70% repeat customers. Closed 24% of the gap (unsupported)narrow spread · team of 50 · 10,000 enquiries · 0% repeat customers. Closed 28% of the gap (unsupported)narrow spread · team of 50 · 10,000 enquiries · 30% repeat customers. Closed 30% of the gap (unsupported)narrow spread · team of 50 · 10,000 enquiries · 70% repeat customers. Closed 40% of the gap (unsupported)moderate3.5–5.0moderate spread · team of 5 · 100 enquiries · 0% repeat customers. Closed 41% of the gap (unsupported)moderate spread · team of 5 · 100 enquiries · 30% repeat customers. Closed 40% of the gap (unsupported)moderate spread · team of 5 · 100 enquiries · 70% repeat customers. Closed 21% of the gap (unsupported)moderate spread · team of 5 · 1,000 enquiries · 0% repeat customers. Closed 20% of the gap (killed)moderate spread · team of 5 · 1,000 enquiries · 30% repeat customers. Closed 25% of the gap (unsupported)moderate spread · team of 5 · 1,000 enquiries · 70% repeat customers. Closed 38% of the gap (unsupported)moderate spread · team of 5 · 10,000 enquiries · 0% repeat customers. Closed 14% of the gap (killed)moderate spread · team of 5 · 10,000 enquiries · 30% repeat customers. Closed 14% of the gap (killed)moderate spread · team of 5 · 10,000 enquiries · 70% repeat customers. Closed 19% of the gap (killed)moderate spread · team of 20 · 100 enquiries · 0% repeat customers. Closed 28% of the gap (unsupported)moderate spread · team of 20 · 100 enquiries · 30% repeat customers. Closed 28% of the gap (unsupported)moderate spread · team of 20 · 100 enquiries · 70% repeat customers. Closed 28% of the gap (unsupported)moderate spread · team of 20 · 1,000 enquiries · 0% repeat customers. Closed 41% of the gap (unsupported)moderate spread · team of 20 · 1,000 enquiries · 30% repeat customers. Closed 47% of the gap (unsupported)moderate spread · team of 20 · 1,000 enquiries · 70% repeat customers. Closed 44% of the gap (unsupported)moderate spread · team of 20 · 10,000 enquiries · 0% repeat customers. Closed 26% of the gap (unsupported)moderate spread · team of 20 · 10,000 enquiries · 30% repeat customers. Closed 31% of the gap (unsupported)moderate spread · team of 20 · 10,000 enquiries · 70% repeat customers. Closed 31% of the gap (unsupported)moderate spread · team of 50 · 100 enquiries · 0% repeat customers. Closed 18% of the gap (killed)moderate spread · team of 50 · 100 enquiries · 30% repeat customers. Closed 20% of the gap (killed)moderate spread · team of 50 · 100 enquiries · 70% repeat customers. Closed 21% of the gap (unsupported)moderate spread · team of 50 · 1,000 enquiries · 0% repeat customers. Closed 35% of the gap (unsupported)moderate spread · team of 50 · 1,000 enquiries · 30% repeat customers. Closed 36% of the gap (unsupported)moderate spread · team of 50 · 1,000 enquiries · 70% repeat customers. Closed 24% of the gap (unsupported)moderate spread · team of 50 · 10,000 enquiries · 0% repeat customers. Closed 22% of the gap (unsupported)moderate spread · team of 50 · 10,000 enquiries · 30% repeat customers. Closed 21% of the gap (unsupported)moderate spread · team of 50 · 10,000 enquiries · 70% repeat customers. Closed 21% of the gap (unsupported)wide2.0–5.0wide spread · team of 5 · 100 enquiries · 0% repeat customers. Closed 19% of the gap (killed)wide spread · team of 5 · 100 enquiries · 30% repeat customers. Closed 22% of the gap (unsupported)wide spread · team of 5 · 100 enquiries · 70% repeat customers. Closed 10% of the gap (killed)wide spread · team of 5 · 1,000 enquiries · 0% repeat customers. Closed 8% of the gap (killed)wide spread · team of 5 · 1,000 enquiries · 30% repeat customers. Closed 10% of the gap (killed)wide spread · team of 5 · 1,000 enquiries · 70% repeat customers. Closed 15% of the gap (killed)wide spread · team of 5 · 10,000 enquiries · 0% repeat customers. Closed 6% of the gap (killed)wide spread · team of 5 · 10,000 enquiries · 30% repeat customers. Closed 6% of the gap (killed)wide spread · team of 5 · 10,000 enquiries · 70% repeat customers. Closed 8% of the gap (killed)wide spread · team of 20 · 100 enquiries · 0% repeat customers. Closed 16% of the gap (killed)wide spread · team of 20 · 100 enquiries · 30% repeat customers. Closed 15% of the gap (killed)wide spread · team of 20 · 100 enquiries · 70% repeat customers. Closed 12% of the gap (killed)wide spread · team of 20 · 1,000 enquiries · 0% repeat customers. Closed 14% of the gap (killed)wide spread · team of 20 · 1,000 enquiries · 30% repeat customers. Closed 18% of the gap (killed)wide spread · team of 20 · 1,000 enquiries · 70% repeat customers. Closed 24% of the gap (unsupported)wide spread · team of 20 · 10,000 enquiries · 0% repeat customers. Closed 9% of the gap (killed)wide spread · team of 20 · 10,000 enquiries · 30% repeat customers. Closed 10% of the gap (killed)wide spread · team of 20 · 10,000 enquiries · 70% repeat customers. Closed 12% of the gap (killed)wide spread · team of 50 · 100 enquiries · 0% repeat customers. Closed 13% of the gap (killed)wide spread · team of 50 · 100 enquiries · 30% repeat customers. Closed 15% of the gap (killed)wide spread · team of 50 · 100 enquiries · 70% repeat customers. Closed 18% of the gap (killed)wide spread · team of 50 · 1,000 enquiries · 0% repeat customers. Closed 21% of the gap (unsupported)wide spread · team of 50 · 1,000 enquiries · 30% repeat customers. Closed 22% of the gap (unsupported)wide spread · team of 50 · 1,000 enquiries · 70% repeat customers. Closed 19% of the gap (killed)wide spread · team of 50 · 10,000 enquiries · 0% repeat customers. Closed 14% of the gap (killed)wide spread · team of 50 · 10,000 enquiries · 30% repeat customers. Closed 14% of the gap (killed)wide spread · team of 50 · 10,000 enquiries · 70% repeat customers. Closed 15% of the gap (killed)0.000.250.500.751.00How much of the gap to an even split was closed. 0 is no better than rating alone.
One dot for each of the 81 situations tried, none left out. Hover a dot to see its team size, how many enquiries arrived, and how many were repeat customers.
  • narrow 4.1–4.8 10 of 27 met the pass mark

    Closed 46% of the gap on average, and only 18% in the worst case. The lowest rated person on the team got no customer at all in 49% of runs.

  • moderate 3.5–5.0 0 of 27 met the pass mark

    Closed 28% of the gap on average, and only 14% in the worst case. The lowest rated person on the team got no customer at all in 87% of runs.

  • wide 2.0–5.0 0 of 27 met the pass mark

    Closed 14% of the gap on average, and only 6% in the worst case. The lowest rated person on the team got no customer at all in 99% of runs.

The limit of this result

Real sales teams are rated far more tightly than anything tested here. In practice they sit between 4.85 and 5.00, because anyone who stays below that gets coached out of the team rather than left in it. That band is narrower than the narrowest situation above, so this test does not tell you what the bonuses did in the place they actually ran. I have not added a situation for it. Adding a kinder one after seeing the result is exactly what writing the test down in advance is meant to stop, and an honest result is worth more than a better number.

Why it fails

Both adjustments are all or nothing, so they only separate two people when one qualifies and the other does not. When the ratings are further apart than the 1.00 both bonuses can add, the top rated person cannot be overtaken at all. In one widely rated team of five, one person took 889 of 1,000 customers and three took none. When enquiries are few, nobody reaches 25 customers, so everyone gets the bonus and it cancels out. When enquiries are many, everyone is well past 25, so nobody gets it and it cancels out again. The bonuses only share work evenly while the team sits right around 25 customers and the ratings are close enough for 1.00 to change the order.

Outcomes

The even-sharing promise failed in 71 of the 81 situations. It passed only when staff ratings sat close together, and even then in just 10 of those 27 situations. Wherever they were spread wider, the bonuses could not even out the work. The part the product actually sells, sending a returning customer back to the same person, did hold up.

The patent was granted on December 15, 2020 and is still in force. It now belongs to Cbda Holdings LLC. Ten years on, the even-sharing promise is the part of the filing I would write differently.

  • 6

    ways to reach the team from one link: video, chat, text, call, email and booking a time.

  • 42

    campaign links still saved in the Internet Archive, across 12 Signals and all six ways in.

  • HMU

    The mobile app and responsive web app, rebranded in 2020.

What's next

HMU, rebuilt for AI

The same person every time, with an AI agent covering the gaps. Not built yet: join the waitlist and tell me if it's for you.

Do you sell to named accounts, one company at a time?

I'll only email you about HMU. Reply to any email to be removed.

Credit

  • Robert Duebelbeis

    Chief Product Officer · Named inventor

    Owned the product: designed how it looked and worked, built the front end, and marketed it to one named company at a time.

  • Brandon Brumage

    Full-Stack Engineer · Named inventor

    Built the product front to back: the API, the pipeline that tests and ships every change, and the Amazon Web Services hosting.

  • Seth Hein

    iOS Developer

    Turned Robert's Sketch designs into the iPhone app, and connected it to the API Brandon built.

  • Thomas Horner

    Software Engineer

    Set up the automated tests that check the code, after Brandon trained him on it.

  • Bryan Roach

    Chief Creative Officer, Scorch

    Designed the logo, and lent his creative staff to the product team.

  • Sarah Hamilton

    Art Director, Scorch

    Brought outer-space illustrations to life for the new brand and the bold, frontier-pushing character it was growing into.

  • Jacqui Germain

    Content Writer, Scorch

    Gave the character its voice in the copywriting, embracing emoji and Robert's hatred of email.

  • Colette Kolar

    Interactive Art Director, Scorch

    Turned the space illustrations into coherent website designs, alongside a full production schedule.

  • Nathan Doyle

    Senior Content Writer, Scorch

    Quality assurance (testing the product before each release) and brand identity consulting.

  • Mindy Bollegar

    Interactive Director, Scorch

    Quality assurance (testing the product before each release) and brand identity consulting.

  • Lindsay Newhouse

    Creative Director, Scorch

    Quality assurance (testing the product before each release) and brand identity consulting.

  • Grad Conn

    Chief Marketing Officer, Microsoft

    Gave us unfettered access to his team's use cases.

  • Michael Lauricella

    Integration Evangelist, Atlassian

    Met us at Web Summit in Lisbon, then brought us into AtlasCamp twice, where we demoed PingPilot's video calling built on Atlassian's new APIs.

  • Chris Buehler

    Named inventor

    Asked us to look at putting a link in a PDF. Paid to file the patent.

Who invented what

The names on the front of a patent matter legally, so I want to be exact. Brandon Brumage and I did the inventing the patent describes, and nobody else did. Chris Buehler asked us to look at putting a link in a PDF, and he paid to file the patent. Under patent law, neither of those makes someone an inventor: the test is whether you helped invent what the patent claims. The law (Section 256 of US patent law) has a way to fix a name that does not meet that test. I have not asked for that fix. I am just telling it the way it happened, as I lived it.