General customization

You can customize the chat widget to match your brand and user experience. You can change various aspects of the chat widget including both the appearance and behavior.

Enhance your chat flows with Plain’s data model

Plain’s chat widget is designed to be flexible and powerful. You can use Plain’s data model to enhance your chat flows, providing a more tailored experience for your users and improving your ability to triage and respond.

You can currently set the following fields on threads created from the chat widget:

  • Labels
  • Tiers
  • Tenants
  • External IDs

There are several places in the configuration you can add these with varying effects:

All threads

Providing a top-level threadDetails object in the Plain.init function will set these fields on all threads created from the chat widget. You could, for example, set a label based on the page the user is on.

Chat buttons

You can configure the primary chat button and any additional chat buttons that appear on the intro screen with text and an icon using the chatButtons array.

You can also pass threadDetails to a chat button to set fields on the thread when the user creates a chat from that specific button. If you provide the same field in both the top-level threadDetails and a chat button, any single value fields will be overridden by the chat button and any multi-value fields will be appended to.

Chat forms

Similar to chat buttons, chat forms allow you to set fields on the thread when the user creates a chat. These are specific to each chatButton.

Additional methods

We provide additional methods on the Plain object to provide more control over the chat widget. This may be helpful to keep the chat widget in-sync with your existing application state.