allseeingeye is the business relations management system a sales team uses to take companies from a first contact to a signed agreement. insidethebox designed, built and runs it.

allseeingeye is a business relations management system for a sales team that represents companies in the Greek shipping market. It takes each company from a first contact to a signed agreement, and records the offer that follows. insidethebox designed and built it, deployed it, and maintains and extends it.

Challenge

Winning a company follows the same three steps every time: a first contact, a cover letter that sets out the proposal, and a draft agreement for the company to review. Before the system, those steps lived in Word files, email threads and people's memory, so the questions a sales team asks all day were slow to answer. Which stage is each company at? Who is the person in charge there, and which of their addresses do we write to? What did we offer, and did they take it?

Several salespeople work the same market, and each has their own relationship with a company. One person's client may be another's cold contact, and the system has to hold both without mixing them up.

Strategy

We put the process on the company itself. A company's card shows its stage, first contact, cover letter or agreement, beside its status for the person looking: inactive, receiving offers or client. Both change in place, with a click on the card.

Every salesperson keeps their own view of a company: their own status, their own contact persons and their own notes. The company's details are shared; the relationship is not.

The documents come out of the system, from the team's own templates, so a letter or an agreement always carries the right name, address and dates. And since an agreement that goes out is an offer, the system records the offer the moment the agreement is downloaded, rather than waiting for someone to type it in.

Build

The app is a grid of cards behind a slim icon rail and a top bar. The search box and each page's filters sit in the top bar, so the cards keep the whole panel, and ⌘K focuses the search from anywhere. The interface is dark by default with a light mode a click away, and the server renders the chosen theme on the first paint.

A company card carries its status and stage pill, a location pill that opens its pin on the map, emails and phone numbers that copy on a click, its department and its comments, all edited in place. Personnel are grouped under their company, with a star for the contact person and a box to tick people into a calling list. Departments and service names are lists that grow as the team types a new one.

The cover letter dialog suggests the company's people, builds the greeting from the chosen surname, asks which address to use when the company has several, and produces the recipient, subject and body of the letter with a copy button on each, ready for the team's mail client.

The agreement dialog is pre-filled from the company, or from the last agreement generated for it, and fills the team's Word template on the server: the company's details, the person in charge, the set-up and monthly fees, the start date and the dates three and six months on that the agreement refers to. The document is stored with the company, where it can be downloaded, regenerated or replaced with an uploaded version, and a second step prepares the covering email.

The first download of a generated agreement creates the offer: the service is Agreement, the set-up and monthly fees are read from the figures typed into the dialog, in euros, and the offer is marked as automatic. The same agreement never creates a second offer, and the company moves to receiving offers. When the offer is marked won, the company becomes a client. Offers can also be entered by hand, and the list is filtered, sorted and exported as CSV.

Outcome

allseeingeye is live in production and still growing. The card views, the agreement generation and the sales stages were each added to the running system as the team's way of working settled, and the next capability will be added the same way. It runs on Laravel and React, and is built as a container and deployed from the repository.