# Automate spreadsheet cleanup (/use-cases/team-ops/spreadsheet-data-ops)



Copy this prompt to start your first task:

<Prompt>
  Clean up [spreadsheet] — dedupe it, fill in gaps, standardize formatting — then compute [the totals or pivot I need] from it, and save the whole process as a template so it reruns automatically on a schedule.
</Prompt>

<LivePreview component="NewThread" scenario="{ draft: &#x22;Clean up [spreadsheet] — dedupe it, fill in gaps, standardize formatting — then compute [the totals or pivot I need] from it, and save the whole process as a template so it reruns automatically on a schedule.&#x22; }" />

## What is this workflow? [#what-is-this-workflow]

Automating spreadsheet cleanup is the recurring job of turning a messy source file into a clean, calculated result without redoing the cleanup by hand every time. Give a teammate a spreadsheet and a goal, and it cleans first — deduping, filling gaps, standardizing formatting — before it runs any calculation, then computes the totals you asked for and pivots them into a summary table or chart. Ask it to save the process and a one-time answer turns into a reusable template — the column mapping, calc rules, and chart config — that reruns itself on a fixed cadence instead of you repeating the same setup.

<Callout type="info">
  It spot-checks key totals against the source before calling a run done. Worth confirming that check happened on the first run.
</Callout>

## How to use this workflow [#how-to-use-this-workflow]

<Steps>
  <Step>
    ### Hire a spreadsheet analyst [#hire-a-spreadsheet-analyst]

    Open **AI Teammates** in the sidebar, click **Hire AI Teammate**, and pick the **Spreadsheet Analyst** template. The default bio is generic spreadsheet work. Replace it on the Profile step so it knows this job means cleaning before calculating, then saving the whole process as a rerunnable template:

    <Prompt>
      You're our spreadsheet analyst. Given a source spreadsheet and a goal, clean it first (dedupe, fill gaps, standardize formatting) before running any calculation. Compute the requested totals and pivot them into a summary table or chart. Spot-check key totals against the source before calling a run done. When asked, save the process, column mapping, calc rules, chart config, as a reusable template that reruns on a fixed cadence, and mask employee names in output touching expense data.
    </Prompt>

    Confirm the name and click **Create teammate**. They land in their own channel, which is where you'll send everything below. [More on hiring →](/ai-teammates/hire-an-ai-teammate)

    <LivePreview component="CreateAssistantPage" scenario="{ focus: &#x22;profile&#x22;, initialState: { start: &#x22;template&#x22;, templateRef: &#x22;@helio/spreadsheet-analyst&#x22;, name: &#x22;Spreadsheet Analyst&#x22;, bio: &#x22;You're our spreadsheet analyst. Given a source spreadsheet and a goal, clean it first (dedupe, fill gaps, standardize formatting) before running any calculation. Compute the requested totals and pivot them into a summary table or chart. Spot-check key totals against the source before calling a run done. When asked, save the process, column mapping, calc rules, chart config, as a reusable template that reruns on a fixed cadence, and mask employee names in output touching expense data.&#x22; } }" />
  </Step>

  <Step>
    ### Share the source spreadsheet [#share-the-source-spreadsheet]

    Send the source spreadsheet to the teammate as an attachment in its channel. The cleaned result comes back the same way.
  </Step>

  <Step>
    ### Give it the source and the goal [#give-it-the-source-and-the-goal]

    <Prompt>
      Here's our Q3 expenses spreadsheet [attached]. Clean it (dedupe, fill gaps, standardize formatting), then compute total spend by category and pivot it into a monthly summary chart.
    </Prompt>

    <LivePreview
      component="AssistantChat"
      scenario="{ assistantName: &#x22;Spreadsheet Analyst&#x22;, messages: [
    { author: &#x22;user&#x22;, text: &#x22;Here's our Q3 expenses spreadsheet [attached]. Clean it (dedupe, fill gaps, standardize formatting), then compute total spend by category and pivot it into a monthly summary chart.&#x22; },
    { author: &#x22;assistant&#x22;, text: &#x22;Working through the Q3 expenses spreadsheet now: deduping, filling gaps, and standardizing formatting, then computing total spend by category and pivoting it into a monthly summary chart.&#x22; },
  ] }"
    />
  </Step>

  <Step>
    ### Save it as a rerunnable automation [#save-it-as-a-rerunnable-automation]

    Open **Automations** in the sidebar, click **Create via Chat**, and pick this teammate in the New Thread composer that opens:

    <Prompt>
      Save this whole process as a template (column mapping, calc rules, chart config) and schedule it to rerun on a fixed cadence. Mask employee names in the output since this touches expense data.
    </Prompt>

    <LivePreview component="NewThread" scenario="{ populated: false }" />
  </Step>
</Steps>

**Nothing here needs your approval:** cleaning, computing, and saving a template all happen inside this channel — the cleaned result comes back as a separate attachment, never an edit to the source in place, and none of it touches a system outside Helio or deletes anything. See [Control](/ai-teammates/control) for what does pause for sign-off.

## Tips for Better Results [#tips-for-better-results]

| Tip                                        | Description                                                                                                                |
| ------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------- |
| Give it a goal, not just a file            | Cleaning without a target just tidies the sheet. Say what to compute and pivot so cleaning serves a specific calculation.  |
| Confirm the spot-check on the first run    | It checks key totals against the source before calling a run done — worth verifying that actually happened the first time. |
| Name exactly what needs masking            | Masking, like employee names in output touching expense data, only applies to what the teammate's bio tells it to mask.    |
| Save it as a template once you'll rerun it | A one-off cleanup and a scheduled rerun use the same setup — the difference is asking it to save the template.             |

## Common Questions [#common-questions]

<Accordions type="single">
  <Accordion title="Does it edit my original spreadsheet?">
    No. Cleaning, deduping, and formatting happen before any calculation runs, and the cleaned result comes back as a separate attachment in the channel, not an edit to the source file.
  </Accordion>

  <Accordion title="Does it check its own work?">
    Yes. It spot-checks key totals against the source before calling a run done — worth confirming that happened on the first run.
  </Accordion>

  <Accordion title="What does saving it as a template actually save?">
    The column mapping, calc rules, and chart config — the whole process, not just the output — so it can rerun on a fixed cadence instead of you repeating the setup.
  </Accordion>

  <Accordion title="Does it mask sensitive data automatically?">
    Only what its bio tells it to mask. In this setup, that's employee names in any output touching expense data.
  </Accordion>

  <Accordion title="Do I need to approve anything in this flow?">
    No. Cleaning, computing, and saving a template all stay inside the channel and don't touch a system outside Helio or delete anything, so this flow runs on its own.
  </Accordion>
</Accordions>

<Cards>
  <Card title="Team Ops" href="/use-cases/team-ops" description="Back to the Team Ops use case overview." />

  <Card title="Plan and track a project" href="/use-cases/team-ops/project-planning" description="Tasks, owners, and milestones, with a daily rollup and slip warnings." />
</Cards>
