Skip to main content
The contact form is a card you place inside your own page, not a panel floating over it. What people submit lands in the same inbox as chat. Reach for it when a contact page should stay a page. Reach for chat when you want to catch someone mid-task.

Set it up

1

Add the channel

In the dashboard, go to Channels and pick Contact form.
2

Paste two lines into your page

Under Install you get both. They are not interchangeable.

The two lines do different jobs

This is the one thing to get right. data-mode="form" tells the bundle to mount a form, not a floating chat button. Without it, you get chat. <div data-minidesk-form> is where the card draws. Unlike the chat script, this one’s position matters: place it where the form should appear on the page. The script tag itself can sit at the bottom with everything else.
If the div is missing, the widget logs an error and draws nothing. A form that silently fails to appear is almost always this.

What the visitor fills in

Name, email, an optional order or account reference, and what happened. The email address is required, because a form submission with no way to reply is not a support request. Addresses collected here are stored unverified, the same as chat. See requesters.

Styling

The card follows the colour you set on the placement and inherits your page’s width. It is built to sit inside your layout, not fight it.

One form per workspace

A workspace runs at most one contact form. You can put the same two lines on several pages: they all feed one placement, and every submission arrives with source: "widget".

Turning it off

Pause stops the key from resolving, and the card stops rendering. Your page keeps the markup and shows nothing, so switching it off needs no deploy.