Contact Forms
Contact forms give B2B support teams full control over how customer requests enter Plain. They’re the most flexible way to pre-triage, structure, and prioritize conversations, before they even reach your inbox.
Contact forms help you:
Route requests intelligently
Collect upfront information so threads get triaged to the right person or team, automatically.Prioritize what matters most
Add labels, SLAs, and thread metadata during submission so high-value requests get surfaced immediately.Preserve context from the start
Gather key product or account details without follow-up questions, so your team can jump straight into solving.
And because forms are powered by your own frontend and Plain’s API, you get full design control with zero compromises.
Getting started with contact forms
Plain does not provide any UI components or a drop-in script tag. Instead, you use your own UI components and then use Plain’s API. Our Typescript SDK is a great place to get started.
When a contact form is submitted, you first create the customer in Plain and then create a thread in Plain.
Depending on your desired behavior, you can also do other things as part of the form submission, such as:
Add a priority to a thread
Contact forms can take any shape and be very specific to your product and customers.
Examples You Can Customize
Floating Contact Form
This shows how you can build a very simple floating contact form (bottom right) in NextJS.
View demo ↗ | View source on Github↗
Screenshot of the floating contact form
Advanced Contact Form
This example uses structured inputs based on the topic and includes built-in categorization logic – perfect for more complex B2B workflows.
View demo ↗ | View source on Github↗
Screenshot of the advanced contact form