Data & reporting

Data and spreadsheets with AI agents: import lists, match data, write reports.

Back office work runs on spreadsheets: lists arrive from outside, master data drifts apart, someone needs a quick analysis, and at the start of the month everything is merged into one report. An agent does that by your rules and asks you before anything goes out. Here is one Tuesday with four such runs.

A Tuesday in the back office

Four agent runs in one day. Each one fetches its own data, asks when something is unclear and leaves a finished result behind.

  1. 01 · 06:30

    Deduplicate the customer list and fix formats

    Every morning at 06:30 the run goes through the customer records: the same company twice, phone numbers in four spellings, entries without an email address. Clear duplicates the agent merges by your rule, for the unclear Weber Technik pair it asks Lea in the back office. After her yes there are 6 entries fewer in the list, the corrected values go back into the CRM, and every change can be undone on its own.

    1. 1At 06:30 the agent goes through all customer records
    2. 2Clear duplicates are merged by your rule
    3. 3The unclear pair goes to Slack as a question
    4. 4The corrected values go back into the CRM
    5. 5Every change is listed and can be undone
    ScheduleRecordsSlackAttioReport
  2. 02 · 08:05

    Import the supplier's new price list

    Hansen Materials sends the October list as an Excel file to purchasing@. The agent reads the 1,240 rows, maps the columns that are named differently again and compares them with the item records: 86 prices change, 12 items are new, 3 are gone. Anything below 5 per cent it applies directly, the nine big jumps go to Marco in purchasing, and after his yes the new prices are in the sales Google Sheet.

    1. 1The price list arrives as Excel in the purchasing inbox
    2. 2Columns mapped, 1,240 rows compared with the items
    3. 3Changes below 5 per cent go straight into the records
    4. 4Nine outliers go to Slack with old and new price
    5. 5After the yes: Google Sheet updated, report written
    InboxTable importRecordsSlackGoogle SheetsReport
  3. 03 · 09:40

    A question from sales, a finished list back

    Sina in sales asks in Slack which customers in the north have not ordered since July. The agent reads the orders from Postgres plus the customer records and takes the revenue definition from the KPI document instead of from memory. Shortly after, 23 customers with their last order, last year's revenue and a contact person are in the report, and the answer lands in the same Slack thread.

    1. 1Sina asks in Slack about customers who stopped buying
    2. 2The agent reads the orders from Postgres and the records
    3. 3The definition comes from the KPI document
    4. 423 customers as a list, answered in the same thread
    SlackPostgresRecordsKPI documentReport
  4. 04 · 11:00

    The monthly report from six branch files

    Today is the third working day, so the run builds the monthly report. Five of the six branch files are in the Drive folder, with four different sets of column names; the agent asks Jana in Slack for the missing one. Then it merges 4,812 rows, compares them with last month and, after Tom's yes, sends the report to the six branch managers.

    1. 1On the third working day the branch files are in Drive
    2. 2Four column variants are mapped onto the same fields
    3. 3The missing file is requested in Slack
    4. 44,812 rows merged and checked against last month
    5. 5After the yes the report goes to the branch managers
    Google DriveTable importRecordsSlackReportEmail

Common questions

As an Excel or CSV import, as an attachment from a connected inbox, from Google Drive and Google Sheets, or straight from Postgres, MongoDB and Databricks. Every row becomes a record with fields, status and history. Rows are stored one by one and read by query rather than loaded into a model as a whole, so thousands of rows are no problem. Any other source you connect via MCP or an HTTP step.

You describe the mapping once, after that the agent matches the columns by name and content, as with the six branch files and their four sets of names. A column it is not sure about it reports instead of guessing, and a new column shows up in the report instead of quietly disappearing.

If the integration offers write operations and you allow it, for example Google Sheets, Attio or a database. The default is more careful: the result sits in records, and writing back waits for an approval like Marco's yes. Every run is logged step by step, and changes to records can be undone one by one.

No. Recurring work like the price list or the monthly report you build once as a skill or workflow with a schedule. One-off questions you ask the assistant in a conversation, working on the same records and sources. Once a question becomes a habit, the assistant turns it into a skill with a schedule.

Describe the task. The rest takes shape on the platform.

Start for free, create your first skill with the assistant, and see what a run looks like before you connect anything.