Skip to content

End-customer sign-in (PIN or password)

For: Account owners and developersRequires: A widget; the Admin role in StrikeUp to change the sign-in switch and import customersScreenshots show sample data

An assistant that shows a person’s chat history, acts with their saved credentials and opens their company’s portal must know that the person in front of the screen is that customer. End-customer sign-in puts a PIN or password in front of the widget. You can pre-create customers with credentials, or sign them in from your own backend with a one-time login ticket so they never see the prompt.

The widget learns who a visitor is from the userId your page passes. That is enough for an assistant that answers general questions, but not for one that reads personal data, calls your API with a person’s own credentials or lets them manage their company in the customer portal.

When you switch on Require customer authentication, every visitor proves they are that customer with a PIN of 4 to 8 digits or a password of at least 8 characters before the chat opens. From there:

Your staff never see a customer’s PIN or password in the admin app. Customers who are disabled in CRM, or whose company is deactivated, are refused at sign-in.

RequirementDetails
A widgetIts sign-in switch is on ConfigureUser Interface, in the Customer Portal section
A stable userId on every pageThe sign-in screen asks only for the PIN or password; it signs in the customer whose id your page passes. See Identify users and pass context
Credentials for existing users (recommended)Imported under CRMCustomers › Import from CSV, or issued as login tickets by your backend
RoleThe Admin role to change the switch and import customers; every other signed-in user of your workspace can view them
Plan or costNo plan gate and no cost

When your page passes no userId, the widget makes up a random id and keeps it in that browser’s storage. The visitor’s access then belongs to that browser: on a new browser or device, or after the visitor clears the site’s data, the widget shows the setup screen again and creates a new, empty customer, without the earlier chat history or memories. Passing your own stable id avoids this.

A visitor on a sign-in widget sees one of these screens before the chat. The texts appear in the visitor’s browser language; the English versions are quoted here.

ScreenWhen it appearsWhat the visitor does
“Preparing your session…”While the widget checks the customerWaits
“Set up your access”The customer has no PIN or password yetChooses PIN or password, types it twice, optionally ticks “Remember me on this browser”, selects “Continue”
Welcome backThe customer has a PIN or passwordTypes it, optionally ticks “Remember me on this browser”, selects “Continue”
“Account locked”Too many wrong entriesWaits for the countdown; the widget checks again when it ends
“Account unavailable”The customer is disabled, or their company is deactivatedNothing; contacts you
Something went wrongThe check failedSelects “Retry”
RuleValueExamples
PIN4 to 8 digits, nothing else123 refused · 1234 accepted · 12345678 accepted · 123456789 refused · 12a4 refused
PasswordAt least 8 characters, no other rule7 characters refused · 8 characters accepted
LockoutFailures 1 to 4: nothing. 5th: 1 minute. 6th: 5 minutes. 7th: 15 minutes. 8th: 1 hour. 9th and later: 6 hours eachA wrong entry during a lockout is refused without being checked and does not lengthen it; a correct entry resets the count
Session12 hours; 7 days with “Remember me on this browser”The customer chooses at sign-in; for tickets, your backend chooses
RenewalWhen the widget is open about a minute before the session ends, it renews it for a new full periodA session that has already ended needs the PIN or password again
Login ticketValid 60 seconds, once, for the widget it was issued forA ticket wins over a session already in the browser
  • Whoever has no credential gets the setup screen. A customer who exists without a PIN or password, and an id StrikeUp has never seen, both get “Set up your access”. Setup on an unknown id creates the customer, with the Admin role and a company of their own.
  • Existing customers keep everything. When you switch sign-in on, customers who already chatted keep their chats and saved toolkit credentials; on their next visit they sign in, or set up their credential if you did not import one.
  • Widgets with Require customer authentication off. Visitors chat without a prompt, unless the customer with that id already has a PIN or password: then the widget shows the sign-in screen anyway.
  • Visitors your backend signs in with a valid login ticket: they never see the prompt.
  1. Decide how customers get their credential. Pick one: import your existing users with a PIN or password, issue login tickets from your backend, or let customers set their own on the first visit. The first two do not depend on first-visit setup and are the recommended choice for existing users.

  2. Pre-create customers with credentials (recommended). Under CRMCustomers, select Import from CSV and upload a CSV with a Pin or Password column. Tell each person their credential through your own channel.

  3. Pass a stable userId, and a ticket if you use them. Make sure every page passes the person’s own id, and, for silent sign-in, a fresh loginTicket:

    window.initStrikeUpChatWidget({
    applicationToken: "<your widget's application token>",
    userId: "cus_48210",
    loginTicket: "<ticket your backend obtained for cus_48210>"
    });
  4. Switch sign-in on. Open ConfigureUser Interface, select the widget’s card, turn on Require customer authentication in the Customer Portal section and select Save User Interface Settings at the bottom. From the next page load, every visitor signs in before chatting.

    The Customer Portal section of the User Interface page for the widget "Demo Ltd Support chat". At the top the highlighted setting "Require customer authentication" is On; its help reads "When on, customers must set a PIN or password the first time they open this widget, and enter it on subsequent visits. Existing customers get a one-time setup popup on next visit; their chats and authorizations are preserved." Below are "Enable Customer Portal" (On) and the Visible pages checkboxes. The change takes effect after "Save User Interface Settings".The Customer Portal section of the User Interface page for the widget "Demo Ltd Support chat". At the top the highlighted setting "Require customer authentication" is On; its help reads "When on, customers must set a PIN or password the first time they open this widget, and enter it on subsequent visits. Existing customers get a one-time setup popup on next visit; their chats and authorizations are preserved." Below are "Enable Customer Portal" (On) and the Visible pages checkboxes. The change takes effect after "Save User Interface Settings".
    Require customer authentication makes every visitor set up and then enter a PIN or password before chatting.
    What this screenshot shows
    Screen
    User Interface (/admin/configure/user-interface?widgetId=…)
    Highlighted
    switch “Require customer authentication”, customer-portal-section-top, On. turns end-customer sign-in on or off for this widget (saved with the page)
    Also visible
    Help text about first-time PIN or password set-up; Enable Customer Portal On; Visible pages checkboxes
    Purpose
    the switch that turns end-customer sign-in on

Sign-in has one switch on the widget, credentials in the customer import, and one option in your code.

Require customer authentication, the master switch

Section titled “Require customer authentication, the master switch”
Where

ConfigureUser Interface, the widget’s card, then the Customer Portal section, the switch Require customer authentication. Saved with Save User Interface Settings. New widgets have it switched on.

What

On: every visitor signs in with a PIN or password before the chat, or is signed in by a login ticket. The help text reads: When on, customers must set a PIN or password the first time they open this widget, and enter it on subsequent visits. Existing customers get a one-time setup popup on next visit; their chats and authorizations are preserved.. Off: visitors chat without a prompt, except customers who already have a PIN or password, who still see the sign-in screen. The change reaches visitors on their next page load; sessions already running continue.

Why

A widget that shows personal history, acts with a person’s credentials or opens the customer portal must not be usable by whoever has the id.

Credentials in the customer import, pre-created access

Section titled “Credentials in the customer import, pre-created access”
Where

CRMCustomers › Import from CSV. The CSV columns are CustomerId, CustomerEmail, CustomerCompanyId, CustomerCompanyName, Pin, Password and Role, and optionally a column of toolkit credentials.

What

Fill Pin or Password for a row, never both; the same rules apply as in the widget (4 to 8 digits; at least 8 characters). Role defaults to Admin. The import is all or nothing: one invalid row stops the whole file. A customer imported with a credential gets Welcome back on the first visit; one imported without gets “Set up your access”. Importing a customer again with a new Pin or Password replaces a forgotten credential and clears a lockout, and signs them out of sessions already running on their next request.

Why

Pre-created credentials mean the first visit already asks for a credential you handed out, and they are the basis for login tickets.

The Import customers from CSV page under CRM. Its highlighted intro reads "CSV columns: CustomerId, CustomerEmail, CustomerCompanyId, CustomerCompanyName, Pin, Password, Role. At most one of Pin / Password per row. Role defaults to Admin." Below, the "Pre-fill server credentials (optional)" box lists Demo Billing API, Demo Accounts API and Demo Reporting API with checkboxes, followed by the file chooser, "Download template" and a disabled "Preview" button.The Import customers from CSV page under CRM. Its highlighted intro reads "CSV columns: CustomerId, CustomerEmail, CustomerCompanyId, CustomerCompanyName, Pin, Password, Role. At most one of Pin / Password per row. Role defaults to Admin." Below, the "Pre-fill server credentials (optional)" box lists Demo Billing API, Demo Accounts API and Demo Reporting API with checkboxes, followed by the file chooser, "Download template" and a disabled "Preview" button.
Import customers with a Pin or Password column so they can sign in, or be signed in with a ticket, from the first visit.
What this screenshot shows
Screen
Import customers from CSV (/admin/customers-import)
Highlighted
text “CSV columns: CustomerId, CustomerEmail, CustomerCompanyId, CustomerCompanyName, Pin, Password, Role. At most one of Pin / Password per row. Role defaults to Admin.”, page-intro, shown. none (explains the CSV columns)
Also visible
Pre-fill server credentials box with three toolkits; File chooser, Download template, Preview (disabled)
Purpose
pre-creating customers with a PIN or password before sign-in is switched on
Where

The loginTicket option of your initStrikeUpChatWidget call. The widget also accepts it from window.chatWidgetConfig.loginTicket, or from a loginTicket parameter in your page’s address, in that order.

What

A login ticket is a one-time pass your backend obtains from StrikeUp for one customer and one widget, by presenting that customer’s PIN or password. The customer must already exist with a credential. The ticket is valid for 60 seconds and works once, so obtain a fresh one for each page load. When your request asks to remember the customer, the session lasts 7 days, otherwise 12 hours. The widget redeems the ticket before anything else, and the pop-up and modal types load at once when a ticket is present. A valid ticket wins over a session already in the browser. A ticket that has expired, was used before or belongs to another widget is ignored, and the visitor sees the normal sign-in screen; a session already in that browser is kept only if it belongs to the same userId. A new ticket in a later initStrikeUpChatWidget call restarts the widget.

Why

Your users are already signed in to your product. A ticket carries that sign-in into the widget, so they are never asked for a second credential.

Where

The “Remember me on this browser” box on the widget’s sign-in screens, ticked by the customer. For tickets, the choice your backend makes when obtaining the ticket.

What

A session lasts 12 hours, or 7 days (168 hours) with “Remember me on this browser”. Both survive closing the browser; the box only chooses between the two lengths. While the widget is open, the session renews itself shortly before it ends. A customer signs out with “Log out” in the customer portal’s sidebar; your page cannot sign them out, and StrikeUpChat.destroy() leaves the session in place.

Why

Customers who use your product daily should not type a PIN every morning; on shared devices, the 12-hour default limits how long a forgotten session stays usable.

Require customer authenticationCustomer has a credentialTicket passedWhat the visitor sees
OffNoNoThe chat, without a prompt
OffYesNoWelcome back, then the chat
OnNoNo“Set up your access”, then the chat
OnYesNoWelcome back, then the chat
On or offYesValidThe chat, signed in, without a prompt
On or offYesExpired or usedWelcome back
Screen titleMeaning
“Set up your access”First sign-in for this customer: choose a PIN or password
Welcome backEnter the existing PIN or password
“Account locked”Too many wrong entries; a live countdown shows the wait
“Account unavailable”Disabled customer or deactivated company

The card explains “Choose how you’d like to log in next time. PIN is faster; password is stronger.” The visitor picks “PIN” or “Password”, types it in two fields and selects “Continue”, which stays disabled until both entries match. A mismatch shows “Entries don’t match.”.

Why: a customer with no credential must create one before the widget shows anything personal.

The widget's popup window on the host page, opened by a visitor whose customer ID has no credential yet. The card "Set up your access" explains "Choose how you'd like to log in next time. PIN is faster; password is stronger." Two buttons choose the type: the highlighted "PIN" and "Password", which is selected (blue) because the customer's company prefers passwords. Below are the fields "At least 8 characters" and "Confirm", the checkbox "Remember me on this browser" and the "Continue" button, disabled until both entries match.The widget's popup window on the host page, opened by a visitor whose customer ID has no credential yet. The card "Set up your access" explains "Choose how you'd like to log in next time. PIN is faster; password is stronger." Two buttons choose the type: the highlighted "PIN" and "Password", which is selected (blue) because the customer's company prefers passwords. Below are the fields "At least 8 characters" and "Confirm", the checkbox "Remember me on this browser" and the "Continue" button, disabled until both entries match.
On the first visit the customer chooses a PIN (4–8 digits) or a password (at least 8 characters) and confirms it.
What this screenshot shows
Screen
Set up your access (host page › widget (popup))
Highlighted
button “PIN”, setup-card-type-toggle, not selected (Password preselected from the company's preference). switches the fields to a numeric PIN
Also visible
Intro text about PIN vs password; Password preselected; fields At least 8 characters and Confirm; Remember me on this browser checkbox; Continue button (disabled)
Purpose
first-time credential set-up

The card asks “Enter your PIN to continue.” or “Enter your password to continue.” above one field and the “Remember me on this browser” box. A wrong entry shows the server’s message, such as “Invalid credential.”, in English.

Why: one field is all a returning customer needs.

The widget's popup window for a returning customer who already has a PIN. The card "Welcome back" says "Enter your PIN to continue." above a single "PIN" field. The highlighted checkbox "Remember me on this browser" is unticked: ticking it keeps the customer signed in on this browser for 7 days instead of 12 hours. The "Continue" button below is disabled until a PIN is typed. The widget does not ask for a customer ID; it comes from the page.The widget's popup window for a returning customer who already has a PIN. The card "Welcome back" says "Enter your PIN to continue." above a single "PIN" field. The highlighted checkbox "Remember me on this browser" is unticked: ticking it keeps the customer signed in on this browser for 7 days instead of 12 hours. The "Continue" button below is disabled until a PIN is typed. The widget does not ask for a customer ID; it comes from the page.
Returning customers only enter their PIN or password; Remember me extends the session from 12 hours to 7 days.
What this screenshot shows
Screen
Welcome back (host page › widget (popup))
Highlighted
checkbox “Remember me on this browser”, entry-card, unticked. keeps the session for 7 days on this browser instead of 12 hours
Also visible
Prompt Enter your PIN to continue.; PIN field; Continue button (disabled)
Purpose
sign-in on later visits

After the fifth wrong entry in a row, the card reads “Account locked” and Too many failed attempts. Try again in followed by a live countdown. There is no field and no button. Your staff cannot unlock the account in the admin app other than by importing the customer again with a new credential.

Why: a growing wait makes guessing a PIN impractical without locking out a customer who mistyped once.

The widget's popup window after too many wrong PIN entries. The card's highlighted heading reads "Account locked", followed by "Too many failed attempts. Try again in" with about 14½ minutes left, and a large live countdown in minutes and seconds. There is no field and no button: the visitor can only wait. When the countdown ends the widget checks again and shows the PIN screen. Each further lockout lasts longer, from 1 minute up to 6 hours.The widget's popup window after too many wrong PIN entries. The card's highlighted heading reads "Account locked", followed by "Too many failed attempts. Try again in" with about 14½ minutes left, and a large live countdown in minutes and seconds. There is no field and no button: the visitor can only wait. When the countdown ends the widget checks again and shows the PIN screen. Each further lockout lasts longer, from 1 minute up to 6 hours.
Repeated wrong entries lock the account for a growing time; staff can only clear it by re-importing a credential.
What this screenshot shows
Screen
Account locked (host page › widget (popup))
Highlighted
heading “Account locked”, locked-card, locked, about 14.5 minutes left. none; the widget re-checks when the countdown ends
Also visible
Message Too many failed attempts. Try again in … (about 14 minutes); Live countdown in minutes and seconds
Purpose
what a lockout looks like

The card reads “Account unavailable” and “This account is currently disabled. Please contact your administrator if you believe this is in error.” It appears both for a disabled customer and for a customer whose company is deactivated, so the visitor cannot tell which. Disabling a customer also ends their running sessions at once; deactivating a company refuses sign-in and signs its customers out on their next request.

Why: you can stop a person’s access without deleting their records.

The widget's popup window for a customer who may not sign in. The card's highlighted heading reads "Account unavailable", followed by "This account is currently disabled. Please contact your administrator if you believe this is in error." There is no field and no button. The same screen appears whether the customer was disabled or their customer company was deactivated in CRM, so the visitor cannot tell which.The widget's popup window for a customer who may not sign in. The card's highlighted heading reads "Account unavailable", followed by "This account is currently disabled. Please contact your administrator if you believe this is in error." There is no field and no button. The same screen appears whether the customer was disabled or their customer company was deactivated in CRM, so the visitor cannot tell which.
A disabled customer, or a customer of a deactivated company, sees Account unavailable instead of the chat.
What this screenshot shows
Screen
Account unavailable (host page › widget (popup))
Highlighted
heading “Account unavailable”, disabled-card, shown. none
Also visible
Message This account is currently disabled…
Purpose
what a disabled customer sees
TopicFact
PIN and password rulesPIN 4 to 8 digits; password at least 8 characters; the customer chooses
Session12 hours, 7 days with “Remember me on this browser”
LockoutFrom the 5th wrong entry: 1 minute, 5 minutes, 15 minutes, 1 hour, then 6 hours each time
ResetNo self-service reset or change in the widget; import the customer again with a new credential
Signing outOnly “Log out” in the customer portal; destroy() and your own sign-out do not end the widget session
Login tickets60 seconds, single use, one widget; the customer needs an existing credential
Role after self-setupAdmin of a company of their own
Too many requestsRepeated sign-in requests from one network are slowed down for about a minute
LanguagesScreens follow the browser (English, German, Spanish); error messages from the server are in English

Yes, if the assistant shows personal chat history, acts with a person’s own toolkit credentials or opens the customer portal. Switch on Require customer authentication on ConfigureUser Interface, and pre-create credentials or use login tickets so you do not rely on first-visit setup.

What does the visitor type to identify themselves?

Section titled “What does the visitor type to identify themselves?”

Only their PIN or password. The sign-in screen never asks for a name, email or id; it signs in the customer whose id your page passes as userId. That is why every page must pass the same stable id for the same person.

Is there single sign-on or a JWT login for end customers?

Section titled “Is there single sign-on or a JWT login for end customers?”

There is no SSO or JWT option for end customers. They sign in with a PIN or password, or your backend signs them in with a one-time login ticket. A login ticket is the way to carry your own product’s sign-in into the widget.

Does turning the switch on lose existing chats?

Section titled “Does turning the switch on lose existing chats?”

No. Customers who already chatted keep their chats and saved toolkit credentials, because both belong to their customer id. On their next visit they sign in with an imported credential, or set one up if you did not import one.

On ConfigureUser Interface: select the widget’s card, find Require customer authentication in the Customer Portal section, switch it on and select Save User Interface Settings. Visitors are asked to sign in from their next page load; chats already running continue.

How do I pre-create customers with credentials?

Section titled “How do I pre-create customers with credentials?”

Under CRMCustomers, select Import from CSV and upload a file with the columns CustomerId, Pin or Password, and optionally CustomerEmail, CustomerCompanyId, CustomerCompanyName and Role. Fill either Pin or Password per row, never both. The whole file is refused if one row is invalid.

PIN or password: which should my customers use?

Section titled “PIN or password: which should my customers use?”

The customer chooses on the setup screen. A PIN has 4 to 8 digits and is quicker to type; a password has at least 8 characters and is harder to guess. When you import customers, you choose for them by filling the Pin or the Password column.

What role do customers get when they set up their own credential?

Section titled “What role do customers get when they set up their own credential?”

A customer created on the setup screen becomes Admin of a company of their own. Imported customers get the Role from your file, Admin by default. Change roles under CRM, or let a customer Admin change them in the portal’s Members page.

Twelve hours, or seven days when they tick “Remember me on this browser”. Both survive closing the browser. While the widget is open, the session renews itself shortly before it ends, so active customers are not interrupted.

How long is an account locked after wrong entries?

Section titled “How long is an account locked after wrong entries?”

The first four wrong entries in a row have no effect. The fifth locks the account for 1 minute, the sixth for 5 minutes, the seventh for 15 minutes, the eighth for 1 hour, and each further one for 6 hours. A correct entry resets the count.

Not with a button. Import the customer again under CRMCustomers › Import from CSV with a new Pin or Password: that replaces the credential and clears the lockout. Otherwise the lockout ends when its time runs out.

A customer forgot their PIN. What do I do?

Section titled “A customer forgot their PIN. What do I do?”

There is no self-service reset in the widget. Import the customer again with a new Pin or Password under CRMCustomers › Import from CSV and tell them the new one through your own channel. The import also signs them out of sessions already running on their next request.

Not in the widget or the portal today. To change a credential, import the customer again with the new Pin or Password under CRMCustomers › Import from CSV, and tell them the new one.

A login ticket is a one-time pass your backend obtains from StrikeUp for one customer and one widget, by presenting that customer’s PIN or password. Your page passes it as loginTicket in initStrikeUpChatWidget, and the widget signs the customer in without showing the sign-in screen.

Why is the visitor still asked for their PIN although I passed a ticket?

Section titled “Why is the visitor still asked for their PIN although I passed a ticket?”

The ticket was not accepted. It is valid for 60 seconds and once only, and only for the widget it was issued for. Obtain a fresh ticket on every page load, pass it in the same initStrikeUpChatWidget call as the matching userId, and check the widget it was issued for.

Can a ticket sign in a customer who has no PIN or password?

Section titled “Can a ticket sign in a customer who has no PIN or password?”

No. Tickets are issued only for customers who already have a credential, because your backend presents that credential to obtain the ticket. Import such customers with a Pin or Password first.

No. A disabled customer, or a customer whose company is deactivated, is refused when the ticket is requested, and the widget shows “Account unavailable” if they try to sign in. Enable the customer under CRM first.

“Account unavailable” and “This account is currently disabled. Please contact your administrator if you believe this is in error.” The same screen appears when the customer’s company is deactivated, so the visitor cannot tell which. Enable the customer or the company under CRM to restore access.

Why does a visitor see the sign-in screen on a widget without sign-in?

Section titled “Why does a visitor see the sign-in screen on a widget without sign-in?”

The customer with that id already has a PIN or password, so the widget asks for it even though Require customer authentication is off. This protects a customer who set up a credential on another of your widgets, or whom you imported with one.

With “Log out” at the bottom of the customer portal’s sidebar. Your page cannot sign a customer out: StrikeUpChat.destroy() removes the widget but leaves the session. On the next load, pass the new person’s userId, so the widget discards a session that belongs to someone else.

Can my staff see a customer’s PIN or password?

Section titled “Can my staff see a customer’s PIN or password?”

No. The admin app never shows a customer’s PIN or password, and it cannot be read back from the import. Staff can only replace it by importing the customer again with a new credential.

On a shared computer, can the next person see the previous person’s chats?

Section titled “On a shared computer, can the next person see the previous person’s chats?”

Not when your page passes each person’s own userId: the widget discards a stored session that belongs to another id, and the next person signs in as themselves. Ask customers on shared computers to leave “Remember me on this browser” unticked and to use “Log out” in the portal.

SymptomWhat to check
Every visitor ends up in the same accountuserId is still your_customer_id or another fixed value. Pass each person’s own id
A customer is asked to set up a new PIN on another deviceDoes your page pass the same userId on both devices?
A visitor with a ticket still sees Welcome backIn order: was the ticket obtained less than 60 seconds before the page loaded? Was it used before? Was it issued for this widget and for the same userId your page passes?
Your backend is refused with “Customer has no credential set — auto-injection requires a pre-set credential.”Import the customer with a Pin or Password first
“Account locked” with a countdownFive or more wrong entries in a row. Wait, or import the customer again with a new credential
“Account unavailable”Is the customer disabled, or their company deactivated, under CRMCustomers?
A wrong PIN shows “PIN must be 4-8 numeric digits. (Parameter ‘credential’)”The PIN has fewer than 4 or more than 8 digits, or contains other characters
Sign-in shows Request failed (429)Too many sign-in requests came from one network in a short time. Wait a minute, then sign in again
“Session expired.” after a long breakThe 12-hour or 7-day session ended. The customer signs in again
The import is refusedA row has both Pin and Password, a PIN outside 4 to 8 digits or a password under 8 characters; the whole file is refused
A customer still looks signed in after their company was deactivatedThey are signed out on their next request, for example when they send a message. Check that the company is deactivated under CRM
A change fails with Request failed and “This action requires the Admin role.”Changing these settings in StrikeUp needs the Admin role. Ask an Admin to make the change, or to give you the Admin role under Settings › Users.