AWRA OpsHub Search
AWRA Field 05 screens 12 min read

The Link the Mail Scanner Clicked First

A customer’s accounts team clicks the sign-in link you sent and is told it has already been used. Nobody else touched it — their mail security gateway did, seconds after delivery. Why customers will not keep a password for a supplier’s portal, why the obvious replacement breaks in corporate mailboxes, and how the AWRA customer portal is built around both.

Written by
Washingtone AuraFounder, AWRA OpsHub
Issued
Build
Initial

The credit controller at a building-supplies wholesaler has done everything right. The largest customer’s accounts payable lead asked for portal access so she could stop emailing for copies of invoices, and an invitation went out at 9:02. At 9:40 she replies: “Your link says it has already been used. I haven’t clicked it before.” She is telling the truth. Her company’s mail gateway opened the link at 9:02 and four seconds, checked it for malware, found none, and in doing so signed in as her and spent the only use the link had.

Two days later she is emailing for invoice copies again, and the portal has one more dormant account. Nobody in the story did anything wrong. The link did exactly what it was designed to do, and the design was wrong for the mailbox it landed in.

Nobody keeps a password for a supplier

Start with why the link exists at all. A business’s customer portal is, from the customer’s side, one of dozens. The person who settles your invoices also settles invoices from the fuel supplier, the cleaning contractor, the freight forwarder and the software vendors, and every one of them would like her to create an account. She visits each portal perhaps once a month, at month end, when she is busiest. A password she uses twelve times a year is a password she resets eleven of them.

So she does what everyone does: she stops signing in and emails your accounts team instead. “Can you send me a statement?” “Can you resend INV-2207?” Each request costs your side ten minutes, the portal’s usage report says nobody uses it, and the conclusion drawn is that customers do not want self-service. They wanted self-service without one more password.

A password portal, from the customer side

  • One more credential to create, store and rotate, for a site visited monthly.
  • A reset email at month end, every month, because nobody remembers it.
  • Often a shared login for the whole payables team, so nobody knows who did what.
  • When the person who set it up leaves, the account leaves with them.

An emailed sign-in link

  • Nothing to remember: type the work address, open the email, sign in.
  • The mailbox is already protected by the customer’s own security policy.
  • One login per person, so each answer to a quote has a name on it.
  • Turning a leaver off is turning off one address.

The emailed link wins on every line that matters to the customer, which is why it has become the standard for low-frequency access. But it moves the whole security question onto the link itself, and a link has to be careful in ways a password does not.

What a sign-in link has to get right

A sign-in link is a password that travels by email, so it should be short-lived, usable once, and worthless to anyone who reads it out of a database. In AWRA each link is a random 64-character token. Only its SHA-256 hash is stored, so someone with read access to the database holds nothing that signs anyone in. It expires 30 minutes after it is sent, and it works once: using it marks it spent inside a locked transaction, so two clicks arriving at the same moment cannot both succeed.

The request form is careful about who is asking, too. A customer who needs a fresh link types their address on the portal’s sign-in page and gets the same message whether or not that address has access: “If that address has access to a customer portal, a sign-in link is on its way.” The form cannot be used to find out who your customers are. Each address can be sent three links per quarter hour and each network twenty requests a minute, so the form cannot be used to flood a stranger’s inbox either. Past the limit the message stays the same; the emails stop.

Property What the portal does What it prevents
Stored form SHA-256 hash only A database read handing out sign-ins
Lifetime 30 minutes from sending An old email in an archive working next year
Uses One, spent in a locked transaction A forwarded or replayed link working twice
Unknown address Same reply as a known one Testing who is a customer
Requests Three per address per 15 minutes The form being used to spam an inbox
Dead link A page that says so, with Get a new link A blank error and a support call

All of that is standard practice. None of it would have saved the accounts payable lead in the opening scene, because every property in the table is about the token, and her problem was about who clicked it.

The trap: something else clicks first

Corporate mail rarely reaches a person untouched. Secure email gateways, link-rewriting services and sandboxing tools follow the links in incoming messages to see where they lead and whether the destination is hostile. Some fetch at delivery, some at the moment of the click, some both. From the server’s point of view, that fetch is indistinguishable from a person opening the link: it is an ordinary request for the URL.

  1. The email is delivered

    The customer’s mail gateway receives the invitation and finds a link in it.

  2. The scanner follows the link

    Before the person sees the email, the gateway requests the URL to check what is behind it.

  3. A naive server signs in on that request

    If opening the URL is what spends the token, it is now spent — by a machine that throws the session away.

  4. The person clicks

    Minutes later the real customer opens the link and is told it has already been used or has expired.

  5. Trust goes with it

    To the customer the portal looks broken, and to your team the customer looks careless. Both are wrong.

The failure is worst exactly where you most want the portal to work: larger customers with managed mail, whose payables teams process the most invoices. A small customer on a personal mailbox never sees it. That is why it so often survives testing — the team testing the portal is signing in from its own mailboxes.

Opening the link does not sign anyone in

In the AWRA customer portal, opening a sign-in link only looks the token up. The page that appears greets the person by name and shows a single Sign in button. The token is spent when that button is pressed — a form submission, not a page visit. A scanner that fetches the link sees the greeting and leaves the token untouched; the person who presses the button is signed in. If the token has expired or already been used, the page says so, returns a status that tells the scanner the link is gone, and offers Get a new link.

The cost is one extra click for the customer. The test suite pins the behaviour: fetching the link twice leaves it unused, pressing the button signs the customer in, and pressing it again afterwards fails. It is worth being precise about the boundary of the protection. It defends against the thing scanners overwhelmingly do, which is fetch. A tool that went further and submitted forms on the pages it visited would still spend a link — which is one more reason the link is short-lived and asking for another takes ten seconds.

A single-use link that is spent by looking at it will be spent by the first thing that looks — and in a corporate mailbox, that is never the person.

Who gets in, and how they are turned off

Nobody signs up to a customer portal; they are invited. Under Sales → Customer portal, someone with the permission to manage it picks the customer, enters a contact’s name and work address, and the invitation goes out with the first sign-in link. A customer can have as many contacts as it needs — the payables lead, her deputy, the buyer who answers quotes — and each signs in as themselves.

One address belongs to one customer in your workspace. If an address already has access for a different customer, the invitation is refused rather than quietly moved, because a portal login that silently switched accounts would show one customer another’s invoices. The same address can hold access to two different businesses’ portals; asking for a link then sends one email per business, and each link opens only its own.

Your plan sets how many portal logins can be active at once. Re-inviting someone who already has access does not take another place, and a disabled login does not count. The access list filters by customer, by status and by contacts who have never signed in — the last of those being the list to work through after a batch of invitations goes quiet. Invite, resend and revoke work from the mobile app as well as the web.

Revoking is immediate in a way that matters. The login is disabled, every link already sent stops working, and because the portal re-reads the contact on every request, someone who is signed in at that moment is signed out on their next click rather than whenever their session would have lapsed. When a customer tells you their payables clerk left on Friday, that is one click.

Testing it from a staff browser

If you open your own portal in a browser where you are already signed in to AWRA as staff, the portal refuses and says you are signed in elsewhere. That is deliberate: a staff session and a customer session in one browser would disagree about whose workspace the page belongs to. Use a private window, or a different browser, to see what your customer sees.

What the customer can do once inside

The first screen answers the question behind most month-end emails: how much do we owe, and how much of it is overdue. Below that are the five most recent invoices and any quotes waiting for an answer. Everything in the portal is filtered by your workspace and by that one customer, and every record is looked up through those filters, so changing a number in the address bar finds nothing that belongs to anyone else.

Page What it shows What the customer can do
Invoices Every issued invoice with its lines, payments and balance Open the PDF; pay online where offered
Statement Invoices, payments and credit notes with a running balance Choose any date range
Quotes Quotes that have been sent to them Accept or decline, with a reason
Credit notes Issued and applied credit notes Read and reconcile
Support Requests linked to their account, without internal notes Rate a resolved request

Only issued invoices appear. A draft, or an invoice held for approval, is never in front of the customer, and an invoice that has been fulfilled or part-credited stays visible with its balance until it is settled, because fulfilling an order is a stock event, not a payment.

The statement is the page that replaces the most email. It opens on the last six months, takes any date range, and carries an opening balance, each invoice, payment and credit note in date order with a running balance, and a closing balance. Because credit notes are on it, the figure at the bottom is what the customer actually owes.

A quarter on the statement

Opening balance 4,000.00
Invoices issued + 12,500.00
Payments received − 9,000.00
Credit note − 1,500.00
Closing balance 6,000.00

Figures are illustrative.

Answering a quote from the portal is the same act as answering it from the link in the quote email: the quote is marked accepted or declined with the contact’s name and time, the decision is written to the audit trail, and whoever wrote the quote is told in their notifications. A quote that has expired or has already been answered cannot be answered again. Quotes still in draft never appear.

Paying from the portal goes through the payment gateways the business has connected, straight into the business’s own accounts. The customer can pay the full balance or any part of it, and the payment is recorded against the invoice when the gateway confirms it, not when the browser comes back — a closed tab does not lose a payment and a faked return page does not record one. The gateways are currently set up in one currency, so the Pay button appears only on invoices in that currency; an invoice in another currency shows its balance and the payments against it. The customer portal feature page walks through the screens.

The customer says the link has expired or was already used

Send them to the sign-in page

Asking for a new link takes ten seconds. If it happens to the same customer every time, check whether someone is forwarding the email rather than opening it.

The customer says no email ever arrived

Check the access list first

Confirm the exact address and that the login is active, then resend from the list. A silent sign-in form is deliberate, so the customer will not be told the address is unknown.

A contact has left the customer

Revoke the login

Their open links stop working and any live session ends on the next click. Invite the replacement under the same customer.

Your own team sees a signed-in-elsewhere page

Use a private window

You are signed in as staff in that browser. The portal refuses to mix the two sessions.

Before you invite your first customers

Which customers email you most for copies and statements?

Look for

A short list of payables teams.

Why

Those are the first invitations, and the ones whose email traffic will fall.

Which of them sit behind a managed corporate mailbox?

Look for

Your largest accounts.

Why

Exactly where a link spent on opening would fail. Here it will not, so start with them.

Who at each customer answers quotes, and who pays?

Look for

Often two different people.

Why

Invite both, so each decision carries the right name.

Who on your side owns the access list?

Look for

A named person with the permission.

Why

Leavers at customers are only turned off if someone is told and acts.

Verdict

Customers do not refuse self-service; they refuse one more password, and they abandon a portal the first time its link fails. An emailed link answers the first problem only if it survives the mail scanner, and it survives only if opening it changes nothing. Invite the customers who email you most, starting with the largest, and watch the never-signed-in filter for a week: the ones still on it are telling you who to call.

More we can add

A portal that carries more of the conversation

Sign-in, invoices, statements, quotes, credit notes, support history and online payment are in place. These additions follow from how payables teams use the portal once they are in.

Online payment in every invoice currency

Gateways configured per currency, so the Pay button appears on every invoice a customer can settle online.

Raising and replying to support requests in the portal

A new-request form and a reply box on each request, threaded with what your agents see.

A statement PDF from the portal

The on-screen statement as a document the customer can file or attach to their own payment run.

Customer-managed colleagues

A named administrator at the customer inviting and removing their own team, within your allowance.

Tell us how your customers settle with you and we will return a written scope and cost.

Scope your portal

Give your customers a way in

Invitations by email, a sign-in link that survives the mail scanner, and invoices, statements, quotes and payment in one place.

See the customer portal

Frequently asked questions

Do customers need a password for the customer portal?

No. A customer signs in with a link emailed to their work address. Each link works once and expires 30 minutes after it is sent, and a new one can be requested from the portal sign-in page at any time.

Why does the sign-in link open a page with a button instead of signing in straight away?

Mail security gateways open links in incoming email to check them. If opening the link signed the customer in, the scanner would use up the single-use link before the person clicked it. Opening the link only shows a Sign in button; pressing the button is what uses the link.

What can a customer see and do in the portal?

Their balance owed and overdue, every issued invoice with its PDF and payments, a statement with a running balance over any date range, quotes sent to them to accept or decline, credit notes, and support requests linked to their account, which they can rate once resolved. Where the business has connected a payment gateway, they can pay an invoice online in full or in part.

Can several people from one customer use the portal?

Yes. Each contact is invited separately and signs in as themselves, so a quote decision carries the name of the person who made it. An email address can hold access for only one customer within a workspace.

What happens when a customer contact leaves?

Revoke their login from the customer portal access list. Any link already sent stops working and a signed-in session ends on the next click. A disabled login does not count against the plan allowance.

Is the sign-in form a way to find out who is a customer?

No. The form gives the same reply whether or not the address has access, and it limits how many links can be sent to one address, so it can be used neither to test addresses nor to flood an inbox.

Share this article

LinkedIn X WhatsApp

Help Center

Need a quick answer while you read?

Run inventory, procurement, assets, sales, and field work with approved AWRA guidance for setup, migration, integrations, security, pricing, and support.

Search all approved AWRA public help articles.

Open Help Center