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

# Intercom Macros

> Use reusable recording links in Intercom macros for quick one-click insertion

Intercom macros let agents insert pre-written responses into conversations with a single click. By adding a [reusable recording link](/recording-links/reusable) to a macro, agents can quickly request screen recordings without creating a new link each time.

## Setting up a macro with a recording link

<Steps>
  <Step title="Create a reusable recording link">
    In Userplane, create a **reusable recording link**. Choose the appropriate project and domain, enable the **Reusable** toggle, then copy the link URL.

    <Frame caption="Reusable link toggle">
      <img src="https://mintcdn.com/userplane/iHJrxtyvOmNXmfMS/media/links/create-link/create-link-reusable-on.png?fit=max&auto=format&n=iHJrxtyvOmNXmfMS&q=85&s=4edf14a04e6a2ab0e7e3927c40de2100" width="2940" height="1492" data-path="media/links/create-link/create-link-reusable-on.png" />
    </Frame>

    <Frame caption="Share link">
      <img src="https://mintcdn.com/userplane/iHJrxtyvOmNXmfMS/media/links/share-link/share-link-modal.png?fit=max&auto=format&n=iHJrxtyvOmNXmfMS&q=85&s=076a3ada7385260c7542830d9002b6ed" width="1920" height="957" data-path="media/links/share-link/share-link-modal.png" />
    </Frame>
  </Step>

  <Step title="Create or edit a macro in Intercom">
    In Intercom, create a new macro or edit an existing one.

    <Frame caption="Userplane macro in Intercom">
      <img src="https://mintcdn.com/userplane/iHJrxtyvOmNXmfMS/media/intercom/intercom-inbox/macro/intercom-userplane-macro.png?fit=max&auto=format&n=iHJrxtyvOmNXmfMS&q=85&s=3eb8adc9d8d1d464d415d8772e9b2306" width="1920" height="957" data-path="media/intercom/intercom-inbox/macro/intercom-userplane-macro.png" />
    </Frame>
  </Step>

  <Step title="Add the link to the macro message">
    Add a message that includes the recording link URL. For example:

    > Hi! To help us troubleshoot this issue, could you record a quick screen capture? Just click this link and follow the instructions: \[reusable recording link]
  </Step>

  <Step title="Save the macro">
    Save the macro. It's now ready for agents to use.
  </Step>
</Steps>

## Using the macro

<Steps>
  <Step title="Open a conversation">
    Open a conversation in the Intercom inbox.
  </Step>

  <Step title="Insert the macro">
    Open the macro menu and select your Userplane macro. The pre-written message with the recording link is inserted into the reply.

    <Frame caption="Recording link sent to customer">
      <img src="https://mintcdn.com/userplane/iHJrxtyvOmNXmfMS/media/intercom/intercom-inbox/intercom-recording-link-sent.png?fit=max&auto=format&n=iHJrxtyvOmNXmfMS&q=85&s=3ee1b3264b4ce53c4565e27ab3f79d27" width="1920" height="958" data-path="media/intercom/intercom-inbox/intercom-recording-link-sent.png" />
    </Frame>
  </Step>

  <Step title="Send the message">
    Send the message. The customer clicks the link and records their screen.
  </Step>
</Steps>

Since the link is reusable, every customer who clicks it creates a separate recording. All recordings are tied to the same link and can be viewed from the [Links](https://dash.userplane.io/_/links) page in Userplane.

<Frame caption="Reusable link recordings">
  <img src="https://mintcdn.com/userplane/iHJrxtyvOmNXmfMS/media/links/reusable-link-recordings.png?fit=max&auto=format&n=iHJrxtyvOmNXmfMS&q=85&s=8190b5cd4327ab9baeba1bee448c925d" width="2580" height="1492" data-path="media/links/reusable-link-recordings.png" />
</Frame>

## Viewing recordings

When a customer completes a recording, it appears in the conversation automatically.

<Steps>
  <Step title="Recording received">
    The customer clicks the link and completes the recording. You receive a notification in the conversation.

    <Frame caption="Recording link received">
      <img src="https://mintcdn.com/userplane/iHJrxtyvOmNXmfMS/media/intercom/intercom-inbox/intercom-recording-link-received.png?fit=max&auto=format&n=iHJrxtyvOmNXmfMS&q=85&s=b565f79ce7873108442140fa5ca75b84" width="1920" height="959" data-path="media/intercom/intercom-inbox/intercom-recording-link-received.png" />
    </Frame>
  </Step>

  <Step title="Open the recording">
    Click the recording in the sidebar to view its details, or open it in Userplane for full [playback](/recording/playback).

    <Frame caption="Recording received in sidebar">
      <img src="https://mintcdn.com/userplane/iHJrxtyvOmNXmfMS/media/intercom/intercom-inbox/intercom-received-recording.png?fit=max&auto=format&n=iHJrxtyvOmNXmfMS&q=85&s=bef21c2b1d5a5b459b566851acba8f3b" width="1920" height="957" data-path="media/intercom/intercom-inbox/intercom-received-recording.png" />
    </Frame>
  </Step>

  <Step title="Review the recording">
    Watch the video and inspect the captured data — console logs, network requests, user actions, and metadata.

    <Tabs>
      <Tab title="Recording">
        <Frame caption="Recording playback">
          <img src="https://mintcdn.com/userplane/iHJrxtyvOmNXmfMS/media/playback/media/player-playback-screen.png?fit=max&auto=format&n=iHJrxtyvOmNXmfMS&q=85&s=34d146eb3b51ce95c95bfe81f72e50b3" width="1920" height="958" data-path="media/playback/media/player-playback-screen.png" />
        </Frame>
      </Tab>

      <Tab title="Console logs">
        <Frame caption="Console log list">
          <img src="https://mintcdn.com/userplane/iHJrxtyvOmNXmfMS/media/playback/console/console-list-view.png?fit=max&auto=format&n=iHJrxtyvOmNXmfMS&q=85&s=92504dd28ee4f6b7c76fae7e51123cfe" width="1920" height="957" data-path="media/playback/console/console-list-view.png" />
        </Frame>
      </Tab>

      <Tab title="Network logs">
        <Frame caption="Network request list">
          <img src="https://mintcdn.com/userplane/iHJrxtyvOmNXmfMS/media/playback/network/network-panel-list-view.png?fit=max&auto=format&n=iHJrxtyvOmNXmfMS&q=85&s=a6f970197afe084739ad82a0996fbd99" width="1920" height="958" data-path="media/playback/network/network-panel-list-view.png" />
        </Frame>
      </Tab>

      <Tab title="Actions">
        <Frame caption="Actions list">
          <img src="https://mintcdn.com/userplane/iHJrxtyvOmNXmfMS/media/playback/actions/actions-list-view.png?fit=max&auto=format&n=iHJrxtyvOmNXmfMS&q=85&s=648d0c27d24049f06610735f8bbfe212" width="1920" height="958" data-path="media/playback/actions/actions-list-view.png" />
        </Frame>
      </Tab>
    </Tabs>
  </Step>
</Steps>

## Attaching metadata via URL parameters

Since the recording link is reusable, every customer gets the same base URL. But you can inject dynamic context into each recording by appending the `userplane-meta` query parameter to the link in your macro.

The link has two parts — a static base that stays the same across all uses, and a dynamic metadata suffix that changes per conversation. The metadata is attached to the **recording**, not the link, so each recording carries its own context even though they all share the same reusable link.

Intercom macros support placeholder variables that are resolved at send time. You can use these placeholders in the `userplane-meta` parameter so that each conversation automatically injects the right values — ticket ID, customer name, assignee, or anything else Intercom exposes.

<Tabs>
  <Tab title="Static metadata">
    Tag every recording from this macro with a fixed source and macro name.

    ```
    https://record.userplane.io/r/abc123?userplane-meta=source%3Dintercom,macro%3Dbug-report
    ```

    This attaches `source: intercom` and `macro: bug-report` to each recording.
  </Tab>

  <Tab title="Dynamic with placeholders">
    Use Intercom's placeholder variables to inject conversation-specific context.

    ```
    https://record.userplane.io/r/abc123?userplane-meta=source%3Dintercom,conversation_id%3D{{conversation.id}},customer%3D{{user.name}}
    ```

    When the macro is sent, Intercom resolves the placeholders. The recording ends up with metadata like `conversation_id: 12345` and `customer: Jane Smith`.
  </Tab>

  <Tab title="Mixed approach">
    Combine static tags with dynamic placeholders for the best of both.

    ```
    https://record.userplane.io/r/abc123?userplane-meta=source%3Dintercom,macro%3Dbug-report,conversation_id%3D{{conversation.id}},assignee%3D{{assignee.name}},priority%3D{{conversation.priority}}
    ```

    This gives you a fixed `source` and `macro` tag for filtering, plus dynamic `conversation_id`, `assignee`, and `priority` for each individual recording.
  </Tab>
</Tabs>

The metadata appears in the [Info panel](/recording/playback#info-panel) when reviewing the recording.

<Frame caption="Metadata in Info panel">
  <img src="https://mintcdn.com/userplane/iHJrxtyvOmNXmfMS/media/playback/info/info-panel-metadata-expanded.png?fit=max&auto=format&n=iHJrxtyvOmNXmfMS&q=85&s=1d57c8854705159e8023274ccc03c7f1" width="1920" height="958" data-path="media/playback/info/info-panel-metadata-expanded.png" />
</Frame>

See [Metadata SDK](/developer/metadata-sdk) for the full URL parameter format.

## Conversation linking

Recordings created through the macro are automatically linked to the Intercom conversation. Because the metadata is injected dynamically via placeholders, each recording carries its own conversation context — even though they all come from the same reusable link.

<Steps>
  <Step title="Metadata attached">
    The metadata attached via the URL parameter is carried over to the recording. Your team can see it in the Info panel without asking the customer for any additional context.

    <Frame caption="Metadata in Info panel">
      <img src="https://mintcdn.com/userplane/iHJrxtyvOmNXmfMS/media/playback/info/info-panel-metadata-expanded.png?fit=max&auto=format&n=iHJrxtyvOmNXmfMS&q=85&s=1d57c8854705159e8023274ccc03c7f1" width="1920" height="958" data-path="media/playback/info/info-panel-metadata-expanded.png" />
    </Frame>
  </Step>

  <Step title="Issue resolved">
    Once you've reviewed the recording and resolved the issue, close the conversation as normal.

    <Frame caption="Issue resolved">
      <img src="https://mintcdn.com/userplane/iHJrxtyvOmNXmfMS/media/intercom/intercom-inbox/intercom-issue-resolved.png?fit=max&auto=format&n=iHJrxtyvOmNXmfMS&q=85&s=38c55aab1a49525e460d438580710aa2" width="1920" height="957" data-path="media/intercom/intercom-inbox/intercom-issue-resolved.png" />
    </Frame>
  </Step>

  <Step title="Post-resolution follow-up">
    The recording remains linked to the conversation for future reference.

    <Frame caption="Post-resolution workflow">
      <img src="https://mintcdn.com/userplane/iHJrxtyvOmNXmfMS/media/intercom/intercom-inbox/intercom-post-issue-resolution-part-1.png?fit=max&auto=format&n=iHJrxtyvOmNXmfMS&q=85&s=01d9b07a963458b916a91f82b2662c39" width="1920" height="958" data-path="media/intercom/intercom-inbox/intercom-post-issue-resolution-part-1.png" />
    </Frame>

    <Frame caption="Post-resolution follow-up">
      <img src="https://mintcdn.com/userplane/iHJrxtyvOmNXmfMS/media/intercom/intercom-inbox/intercom-post-issue-resolution-part-2.png?fit=max&auto=format&n=iHJrxtyvOmNXmfMS&q=85&s=81126fd8a686f5e47341643f4bb4f1d9" width="1920" height="958" data-path="media/intercom/intercom-inbox/intercom-post-issue-resolution-part-2.png" />
    </Frame>
  </Step>
</Steps>

## Tips

<Tip>
  * Create separate macros for different projects or issue types, each with its own reusable link. -
    Include a brief explanation in the macro text so the customer knows what to expect. - Use a
    branded recording link (with a verified domain) for a more professional experience.
</Tip>

## Related articles

* [Reusable Recording Links](/recording-links/reusable) — how reusable links work.
* [Intercom Inbox](/integrations/intercom-inbox) — the inbox sidebar app.
* [Metadata SDK](/developer/metadata-sdk) — attach custom metadata to recordings.
