Portals

Customers send requests. Engineers get GitHub issues.

A portal is a simple space at your-name.pealboard.com. Customers, partners and staff can send requests and follow along, with no GitHub account. Every request becomes a GitHub issue in the repository you chose, with the labels and project fields you chose.

What your customer sees

  1. Sign in with an email code

    They enter their email, get a 6-digit code, and type it in. No password. No GitHub account. Nothing to install.

  2. Choose a request type

    Bug report, Feature request, Question, or any types you set up. Each one has its own form and goes to the right place in GitHub.

  3. Fill in the form and send it

    They get a request number right away, with a clear note: "Request ACME-42 was created. You will get an email when its status changes or when someone replies."

  4. Follow along

    They can see their own requests, their company’s requests and public ones, each with a plain status and the date it last changed. They can comment, and vote on public requests.

A portal’s request list for one company: five requests, each with its number, title, a status word such as Planned, Waiting on you or In progress, and its request type
A company’s requests in a portal, each with its number and its status.

Request types and destinations

Every request lands in the right place

A request type is a form plus a destination. So every request goes straight to the right repository, with the right labels, from the start. No queue to sort through. Nothing to move by hand.

Where a request type sends its issues
FieldRequiredWhat it does
RepositoryYesWhere the issue is created
LabelsNoAdded when the issue is created. A label that doesn’t exist yet is created for you
ProjectNoThe new issue is added to it
Initial field valuesNoSet when the issue is created, for example Status = Triage
Issue typeNoYour organization’s issue type, if you use them

Every issue a portal creates also gets the label portal:<slug>, so engineers can see at a glance where it came from.

Destinations

Visibility

You control who sees each request

A portal’s default sets what a new request starts as. A member, or a customer with the manager role, can change any request on its own.

Private
The requester, and everyone in your workspace.
Company
Everyone in the requester’s company, plus your workspace. A customer’s company comes from their invitation or their verified email domain. They never pick it themselves.
Public
Everyone signed into the portal, plus your workspace. Public requests can be voted on, one vote per customer.

Whatever the setting, customers never see the repository name, the issue number, the assignee, the labels, the milestone, another portal’s requests, or any internal comment.

Visibility

Statuses

Status updates itself

Your internal Status options, like Triage, Blocked, In review or Needs design, stay yours. Customers see one of seven plain words instead. Rename an internal option and customers notice nothing.

Customers seeWhen
OpenThe default, when nothing below applies
PlannedThe project’s Status field is Planned or Todo
In progressThe project’s Status field is In progress
Waiting on youThe issue has the label needs-info
CompletedClosed as Completed, or the project’s Status is Done
MergedClosed as a duplicate
ClosedClosed as Not planned

Status comes straight from the issue. When an engineer closes it in GitHub, the customer sees the change within seconds. Nobody has to remember to update the portal, and the portal can never disagree with GitHub.

Statuses

Comments

Internal comments stay internal

To reply to a customer, write your comment on the issue, turn onReply to portal, and send. The customer sees it in the portal and gets an email. Every other comment stays internal, and customers can’t reach it.

  • A public comment shows a Public badge in the workspace, so you always know which is which.
  • Customers see your workspace’s name and the time. Not your GitHub login, not your email address.
  • A customer’s comment goes onto the GitHub issue with a footer naming them and their company. Never their email address.
  • One portal setting, Show every GitHub comment to customers, opens the whole thread. It’s off by default.

Public replies

Attribution

Engineers see who asked

Every issue created through a portal starts with one line naming the requester and their company. A hidden marker links the issue back to its request.

> **Requested by** Jane Doe (Acme) through the [Acme portal](https://acme.pealboard.com/requests/ACME-42).

The visible line shows a name and a company, never an email address. That way Pealboard can honor a deletion request later, even though a GitHub issue can’t be recalled. The hidden marker survives edits by people who don’t know it’s there.

Branding and access

Your brand, and only the people you invite

Your portal shows your logo, your accent color, your name and your welcome text. Pealboard appears once, in the footer.

Access modeWho can sign in
Invite onlyOnly people a member invited
Domain allowlistAnyone with a verified email address at a domain you listed
OpenAnyone. A new customer’s first request waits in the hold queue until a member releases it

Every portal form is protected by Cloudflare Turnstile. If your accent color is too light to read against the page, the portal darkens it until it passes and shows you the color it used.

Branding

Common questions

Does a customer need a GitHub account?
No. They sign in with a 6-digit code sent to their email, or with a sign-in link. No password, no GitHub account, and no invitation to create one.
Are portal customers billed?
No, on any plan, at any number. You pay only for workspace members: owners, admins and members. Viewers, portal customers and companies are never counted.
Can a customer see our internal comments?
No. Customers see comments written in the portal and replies a member sent with Reply to portal. Everything else stays internal. There’s a portal setting that shows customers every GitHub comment. It’s off by default, and turning it on is a deliberate choice.
What does the engineer see in GitHub?
A normal issue. The body has what the customer filled in, under headings, plus one line naming the requester and their company. Never their email address. A reply you made public gets a short footer saying so. That’s it.
What happens if we delete a portal?
The portal, its customers, its companies and its request records are deleted. Nothing in GitHub changes. Every issue stays where it is, with its comments.

Your first portal is free

The Free plan includes one portal with unlimited customers. Team includes five, and Business is unlimited. Customers are never billed on any plan.

Start free