> ## Documentation Index
> Fetch the complete documentation index at: https://docs.parahelp.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Plain connection setup

> Connect Parahelp to your Plain workspace.

<Note>
  How to prepare the values Parahelp asks for when connecting Plain.
</Note>

During setup, Parahelp asks you for three things: your **Plain workspace URL**, a **machine-user API key** (with **All** permissions), and the **request signing secret**. This guide shows where to get them. Parahelp sets up the webhook automatically, so there is nothing else to build in Plain.

## 1. Create the machine user

<Steps>
  <Step title="Open Machine users & API Keys">
    Go to **Settings → Machine Users**.

    <Frame>
      <img src="https://mintcdn.com/parahelp/7OVFFTjl2xErB5Kl/images/9304834.png?fit=max&auto=format&n=7OVFFTjl2xErB5Kl&q=85&s=28d32dc6bd229767872043b7aa88228a" alt="9304834" title="9304834" className="mx-auto" style={{ width:"72%" }} width="516" height="694" data-path="images/9304834.png" />
    </Frame>

    {/* SCREENSHOT */}
  </Step>

  <Step title="Add Machine User">
    Select **Add Machine User**.

    <Frame>
      <img src="https://mintcdn.com/parahelp/7OVFFTjl2xErB5Kl/images/029848222.png?fit=max&auto=format&n=7OVFFTjl2xErB5Kl&q=85&s=1199f6cd5ba8c7698a7e1350148084f0" alt="029848222" width="1534" height="698" data-path="images/029848222.png" />
    </Frame>

    {/* SCREENSHOT */}
  </Step>

  <Step title="Set the Name">
    Set **Name** to a clear internal name for the agent, for example your agent's name.
  </Step>

  <Step title="Set the Public name">
    Set **Public name** to the customer-facing agent name. Customers see this name when the agent replies, so set it right up front. The machine user is your support agent in Plain.

    **Create** machine user when done.

    <Frame>
      <img src="https://mintcdn.com/parahelp/Gs_-REOPCzkvSU0W/images/82985123985023850.png?fit=max&auto=format&n=Gs_-REOPCzkvSU0W&q=85&s=be7154913fb2699e89e22fcb4596d8da" alt="82985123985023850" width="852" height="736" data-path="images/82985123985023850.png" />
    </Frame>

    {/* SCREENSHOT */}
  </Step>
</Steps>

## 2. Create the API key

<Steps>
  <Step title="Add API Key">
    On the machine user's page, select **Add API Key**

    <Frame>
      <img src="https://mintlify.s3.us-west-1.amazonaws.com/parahelp/images/FWYSIMM.png" alt="FWYSIMM" />
    </Frame>

    {/* SCREENSHOT */}
  </Step>

  <Step title="Give the key the full All permission set, not the default Recommended set">
    * In the permissions header, open the **Filter** dropdown. The **Recommended** vs **All** choice lives inside it, so it is easy to miss.
    * Choose **All** (\~370 permissions) and select everything. Do not pick permissions one by one.

    <Frame>
      <img src="https://mintlify.s3.us-west-1.amazonaws.com/parahelp/images/ai-edited-image.png" alt="Ai Edited Image" />
    </Frame>

    The All set is needed so the agent can reply, assign, update threads, create the webhook target during setup, and support future Plain tools. The default **Recommended** set (\~270 permissions) leaves out the webhook, thread, and customer permissions.

    See [Plain's API key guide](https://www.plain.com/docs/graphql/authentication) for reference.

    {/* SCREENSHOT */}
  </Step>

  <Step title="Create and copy the key">
    Click **Create API Key**, then **copy the key immediately**. Plain shows it only once.

    <Frame>
      <img src="https://mintcdn.com/parahelp/DOeWgZPaZhod41Qo/images/ai-edited-image-(1).png?fit=max&auto=format&n=DOeWgZPaZhod41Qo&q=85&s=dec50fdd004d492b03eb1265af5aeef0" alt="Ai Edited Image (1)" width="1332" height="800" data-path="images/ai-edited-image-(1).png" />
    </Frame>

    <Frame>
      <img src="https://mintcdn.com/parahelp/MShTBKULDdAivDiI/images/image-64.png?fit=max&auto=format&n=MShTBKULDdAivDiI&q=85&s=3e070b533f0b49f055377e2bb4a00027" alt="Image" width="1810" height="688" data-path="images/image-64.png" />
    </Frame>

    {/* SCREENSHOT */}

    {/* SCREENSHOT */}
  </Step>
</Steps>

## 3. Copy the workspace URL

Copy your Plain workspace URL from the browser. It should include `/workspace/...`.

## 4. Copy the request signing secret

Open **Settings → Request signing** and copy the **HMAC secret**. If none exists, generate one, then copy it.

See [Plain's request signing guide](https://www.plain.com/docs/request-signing) for reference.

<Frame>
  <img src="https://mintcdn.com/parahelp/FLKdZyKqCC2DCuXG/images/image-(14).png?fit=max&auto=format&n=FLKdZyKqCC2DCuXG&q=85&s=7773ed79318ae18092b33535c7c1dba9" alt="Image (14)" width="1810" height="684" data-path="images/image-(14).png" />
</Frame>

{/* SCREENSHOT */}

## 5. Enter the values in Parahelp

Give Parahelp the three values when it asks:

* **Workspace URL** (from step 3)
* **API key** (from step 2)
* **Request signing secret** (from step 4)

Parahelp uses this API key as the runtime Plain key: it validates the key, derives the machine-user id from it, and creates or reuses the webhook target automatically.

There is no agent confirmation step: the machine user you created is the support agent, and its **Public name** is what customers see on replies.

<Note>
  If a later step fails with a permission or forbidden error, the API key was most likely created with the **Recommended** set. Recreate it with **All** via the **Filter** dropdown.
</Note>

Once connected, [assign threads to Parahelp](/guides/plain-assigning).
