Help centre

How can we help?

Ask in your own words. An answer comes right here, and someone from our team can join any time. Search our help articles, or call us on weekdays from 8:00 to 20:00.

Power cut? Call 0800 123 4567, free, day or night.

A cosy house at dusk under a crescent moon and stars. The porch light glows warm beside a teal front door, and a cat waits on the step to be let in.

Browse by topic

All 146 articles

Still need us?

Our customer care team is here on weekdays. The search box at the top reaches the same people: ask there, and one of them can join the conversation.

How it works · Stand Inline

Search that answers

People type whole questions into help-center search anyway: why is my bill higher this month? Keyword search answers with a list of maybe-relevant articles, or with nothing at all. Here the help center's own search box answers the question itself, right under it, and someone from customer care can join the same conversation.

Try it

  1. Watch the search box for a moment. It types out questions people really ask, so it's clear that a whole sentence works here. Click into it, and a greeting says who's answering.
  2. Ask your own question, or pick a suggestion like Why is my bill higher? The box unfolds into the conversation, and the topics move down to make room.
  3. When a question needs someone who can see the account, a person from customer care takes over in the same place. Their name and a green dot replace the AI in the header, and the earlier answers keep their AI label. The sample conversation ends with that moment.
  4. Or : scripted, nothing is sent.
Chats here use site="demo", Stand Chat's shared demo site. Its demo Stand-in reads the page's private prompt, but it may still decline to speak for a made-up energy supplier. With your own Site ID, your own Stand-ins answer, trained on your website.

The element

<script type="module" src="stand-inline.js"></script>

<div class="search">
  <stand-inline
    site="YOUR-SITE-ID"
    look="field"
    grow="unfold"
    placeholder="Why is my bill higher this month? | My meter reading looks wrong | I'm moving house next month"
    greeting="Hi! Ask me anything about your account, bills or meter. Someone from our team can join at any time."
    suggestions="Why is my bill higher? | Submit a meter reading | Report a power cut"
    prompt="The visitor is in Porchlight's help centre. The winter tariff started on 1 October… For anything about their own account, offer to bring in a person from customer care."
    analytics-id="help-center-search">
  </stand-inline>

  <!-- Shown only when nobody can answer -->
  <form class="fallback" role="search" action="/help/search">
    <input name="q" type="search" aria-label="Search help articles">
    <button>Search</button>
  </form>
</div>

Make it yours

It takes its font and text color from the page. Porchlight scales it up with font-size, sets a few tokens, and warms up the avatar and AI badge. Until the conversation starts, the box floats like a search box:

stand-inline {
  font-size: 18px;
  --si-accent: #14213D;
  --si-surface: #FFFFFF;
  --si-line: #E6DBC3;
  --si-radius: 16px;
  --si-visitor-bg: #FFEDC4;
}

stand-inline::part(avatar),
stand-inline::part(badge) { background: #FFE3A0; }

stand-inline:not([data-state="conversation"])::part(composer) {
  padding: .5em .5em .5em 1.1em;
  box-shadow: 0 18px 40px -22px rgb(20 33 61 / .45);
}

When nobody can answer

Then the element hides itself and sets data-state="offline". A help center shouldn't lose its search box, so Porchlight keeps its plain article search right after the element and shows it with one rule. The line under the heading changes the same way, so it never promises an answer nobody can give.

.fallback { display: none; }
.search:has(stand-inline[data-state="offline"]) .fallback { display: flex; }

Good to know

Copy this example

npx degit standchat/examples/stand-inline my-stand-inline