Skip to main content
Contact forms give you full control over how customer requests enter Plain. They let you pre-triage, structure, and prioritize conversations. Contact forms allow you to:
  • Collect upfront information so threads get triaged to the right person or team, automatically.
  • Add labels, SLAs, and thread metadata during submission so high-value requests get surfaced immediately.
  • Gather key product or account details without follow-up questions, so your team can jump straight into solving.
Contact forms in Plain

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: A contact form can take any shape, and can ask questions specific to your product.

Examples you can customize

Floating contact form

This shows a floating contact form (bottom right) built in Next.js. View demo ↗ | View source on Github↗ Screenshot of the floating contact form
Floating contact form in Plain

Advanced contact form

This example uses structured inputs based on the topic and includes built-in categorization logic. View demo ↗ | View source on Github↗ Our Contact forms are available on all pricing plans: Foundation, Horizon, and Frontier.