Skip to content

Scheduled reports CSV and Excel report emails

Parse CSV and Excel reports sent by email

Many systems can only send a report as an emailed CSV or Excel file. This layout parses the attachment and turns each row into a line item with the columns you name, so the data reaches your webhook or a Google Sheet without anyone opening the file.

Use this layoutFree plan included: 2 layouts per endpoint.
The email
From
Acme POS <reports@acme-pos.example>
Subject
Daily sales report: 2026-10-29
Attached
sales-2026-10-29.csv
Your daily sales report is attached.
What your endpoint delivers
{
  "parsed": {
    "status": "matched",
    "layout": {
      "id": "csv-reports",
      "name": "Sales reports"
    },
    "fields": {
      "date": "2026-10-29"
    },
    "lineItems": [
      {
        "sku": "LS-01",
        "quantity": "4",
        "revenue": "156.00"
      },
      {
        "sku": "CT-02",
        "quantity": "2",
        "revenue": "48.00"
      }
    ]
  }
}

Shortened: the delivery also carries parsed.attachments, with the text or rows read from sales-2026-10-29.csv.

The layout

It matches the email by its subject, reads each field with an RE2 pattern, and turns the list into line items, and parses the attachments. Edit any of it in the endpoint's settings, where the preview tries it on an email you captured as you type.

{
  "id": "csv-reports",
  "name": "Sales reports",
  "match": {
    "conditions": [
      {
        "field": "email",
        "name": "subject",
        "op": "contains",
        "value": "sales report"
      }
    ]
  },
  "fields": [
    {
      "name": "date",
      "from": "subject",
      "pattern": "(\\d{4}-\\d{2}-\\d{2})"
    }
  ],
  "lineItems": {
    "from": "attachment",
    "attachment": "*.csv",
    "columns": [
      {
        "name": "sku",
        "column": "SKU"
      },
      {
        "name": "quantity",
        "column": "Qty"
      },
      {
        "name": "revenue",
        "column": "Revenue"
      }
    ]
  },
  "parseAttachments": true
}

More senders