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

# Build your first Surface

> Create, test, make live, share, and update a small action tracker from start to finish.

This walkthrough builds a small Interactive Surface for tracking team actions. You will create its record structure, add initial records, test access, make the first version live, share it, and prepare a later update.

<Note>
  Surfaces is a beta feature. If you do not see the creation controls, your organization may not have enabled it or your Workspace role may not allow you to create content.
</Note>

## Choose where to start

| Start from          | What to do                                                                        | Location result                                                                       |
| ------------------- | --------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
| Home                | Click the **Surface** quick action.                                               | Creates a Surface without a Workspace. You can move it later.                         |
| Surface library     | Click **Surfaces** in the sidebar, then **Create Surface**.                       | Creates a Surface you can move into a Workspace later.                                |
| Workspace or folder | Open the destination, click **Create**, then **New Surface**.                     | Creates the Surface in that Workspace and current folder.                             |
| Chat                | Ask Sofie to turn the current work into an Interactive, Pages, or Slides Surface. | Keeps the conversation as the build context. You can name a Workspace in the request. |

<Warning>
  A Surface created in or moved into a Workspace gives every Workspace member Viewer access to its current live version. Start outside a Workspace if you are not ready for that inherited access.
</Warning>

## Build the tracker

<Steps>
  <Step title="Create an Interactive Surface">
    Start from one of the locations above and choose **Interactive**.
  </Step>

  <Step title="Describe the audience, job, data, and access">
    Paste this request, then adjust the field names or roles for your team:

    ```text theme={null}
    Build an Interactive Surface called Team Action Tracker for a project team.

    Create one collection named Actions with fields for Title, Owner, Due date, Status, Priority, Notes, and Evidence attachment. Include an overview with open and overdue counts, filters for owner and status, a searchable action list, and a form for adding or updating an action.

    Managers should manage all actions. Participants should be able to add actions and update actions they own. Viewers should be read-only. Do not configure external guest access yet. Include useful empty states and confirm before changing these access rules.
    ```
  </Step>

  <Step title="Review the experience and structure">
    Open **App** and test the filters, list, and form. Then open **Data** > **Structure** and confirm that the `Actions` collection and its fields match your request.
  </Step>

  <Step title="Add two initial records">
    Open **Data** > **Records**. Confirm that the badge says **Live data**, then add two realistic actions.

    A new Surface has no earlier live version to protect. These first-draft records are the future live records and remain after the first **Make live**.
  </Step>

  <Step title="Test each role">
    Open **Surface settings** > **Test as**. Preview Manager, Participant, and Viewer behavior. Confirm that Participants can complete the intended actions without seeing management controls.
  </Step>

  <Step title="Run the first Make live review">
    Click **Make live**. Review the experience, collections, access rules, records, and guest behavior in the readiness summary. Resolve blocking issues, then confirm.

    Making the Surface live does not invite anyone and does not approve its content.
  </Step>

  <Step title="Share with the team">
    Click **Share** > **Teammates**. Add people as **Can view**, **Can participate**, or **Can manage Surface**.

    If the Surface is already in a Workspace, its members can view the live version without a direct share. Add a direct role only when someone needs Participant or Manager access.
  </Step>

  <Step title="Create and test a later update">
    Ask Sofie to add a priority summary or edit the live Surface. Sofie creates or uses a draft. Open **Data** > **Records** and confirm that the badge now says **Test data**.

    Add test records only for draft testing. They do not become live records when you make the new design live.
  </Step>

  <Step title="Make the update live">
    Use **Test as** again, review the readiness summary, and click **Make live**. The new experience now uses the existing live records. The draft's test records are not promoted.
  </Step>
</Steps>

## Check your result

Before you invite external guests or connect automation, confirm that:

* The current live version is selected.
* The live record count and values are correct.
* Participant and Viewer previews show only the intended actions.
* Workspace members have the access you expect.
* Forms have useful validation and empty states.
* Generated text, calculations, and summaries have been reviewed by the responsible person.

## Use Sofie for focused reviews

```text theme={null}
Audit this Surface for first-time users. Check labels, empty states, error messages, form validation, mobile layout, and the steps needed to add and close an action. List findings before changing anything.
```

```text theme={null}
Explain exactly who can access the current live version and why. Include direct teammate roles, inherited Workspace access, and external guest settings. Do not change access.
```

```text theme={null}
Compare this draft with the current live version. Separate experience changes, structure changes, access changes, and live-record considerations. Do not make it live.
```

## Continue from here

<Columns cols={2}>
  <Card title="Invite external guests" icon="user-round-check" href="/surfaces/share-surfaces">
    Configure Surface-wide guest policy, invitation limits, and an accurate guest preview.
  </Card>

  <Card title="Connect an Orchestration" icon="workflow" href="/surfaces/refresh-with-orchestrations">
    Send repeatable structured output into a named Surface part.
  </Card>

  <Card title="Use versions and snapshots" icon="history" href="/surfaces/versions-and-snapshots">
    Control later drafts and save a version with its feed state.
  </Card>

  <Card title="Troubleshoot a Surface" icon="wrench" href="/surfaces/troubleshoot-surfaces">
    Diagnose missing records, guest access, imports, feeds, runtime errors, and exports.
  </Card>
</Columns>
