# How to automate weekly TikTok Shop reports for agency clients

> Schedule TikTok Shop client reports per shop, build them on your own Excel template, notify each client's Slack channel, and plan the credits it costs.

In Seller Sync, a recurring client report is a schedule: one workflow, one shop, a cadence and a rolling date window. Each run pulls fresh data from TikTok's official APIs, drops it into an Excel workbook built on your own template, and can post a link to the client's Slack channel when it's ready. Set it up once per client and the Monday report builds itself.

This guide walks through the setup for an agency running several client shops, including the limits worth knowing before you promise a client a format.

## What each run produces

Every workflow run creates an `.xlsx` workbook with three standard sheets:

- **Dashboard**: a summary built with Excel formulas. For the order and finance reports this is a P&L-style statement with an expense breakdown chart, plus lines stating the date range and whether it covers all orders or settled orders only.
- **Raw Data**: every record from the run, as an Excel table named `RawData`.
- **Field Definitions**: what each column means.

Order and finance reports add detail sheets for packages, revenue, fees and taxes. Files are named `{shop}-{report}-{date range}.xlsx`, so a folder of client reports sorts itself. One export holds up to 250,000 rows; above that, narrow the date range.

## Pick the reports a client needs

Each workflow is one report. Credits are charged per run.

| Workflow | What it covers | Credits per run |
|---|---|---|
| Net Profit (Order Report) | Every order in the range, with a P&L-style dashboard | 3 |
| Net Profit (Finance Report) | TikTok's settlement data: fees, commission, tax, net payout | 5 |
| Finance Adjustments | Penalties, reimbursements and clawed-back refunds that aren't tied to an order | 3 |
| Unsettled Finance | TikTok's estimated fees and revenue for orders not settled yet | 5 |
| Shop Performance | Daily GMV, revenue, orders and traffic | 1 |
| Shop Health | Daily Shop Performance Score and its six metrics (US shops) | 1 |
| GMV Max Campaign Performance | Daily GMV Max spend and ROI by campaign | 2 |
| GMV Max Product Performance | Daily GMV Max spend and ROI by product | 3 |
| Ad Spend | Daily spend per ad account | 2 |

The three advertising workflows need the client's TikTok Business Center connected as well as their shop.

For most weekly client reports, Net Profit (Order Report) and Net Profit (Finance Report) carry the story. Add GMV Max Campaign Performance if you run the client's ads.

## Make the workbook look like your client report

Every client wants their numbers framed differently. Seller Sync lets you edit the formulas a report is built from, per shop, in Excel.

1. Open the workflow from the shop's **Workflows** page and find **Customise template**.
2. Click **Download template** to get the standard `.xlsx`.
3. Edit it in Excel. Rename headings, add KPI cells, rebuild the Dashboard sheet around the client's targets, add your own sheets.
4. Back in Seller Sync, click **Upload edited file**.

From then on, every run for that shop and workflow fills your workbook with fresh data. Three rules keep this working:

- Start from a freshly downloaded template. Seller Sync recognises its own files and rejects others.
- Keep the `RawData` table and its required columns. Point your formulas at that table and they'll pick up new rows on every run.
- Formulas that pull outside data or run code (`WEBSERVICE`, `IMPORTXML`, `DDE` and similar) are rejected, as are external hyperlinks. Files must be 5 MB or smaller.

If a custom template ever breaks, the run falls back to the standard workbook instead of failing, so the client still gets a report. You can replace the template with a new version or reset to the standard one at any time.

Editing templates needs the template management permission, which the Manager role and the org owner have by default.

## Schedule it

1. Go to **Schedules** and click **Create schedule**, or use **Schedule this flow** on the workflow's page.
2. Pick the workflow.
3. Under **Simple**, choose **Weekly**, the day and the time. **Advanced (cron)** takes a cron expression if you need something like "first and fifteenth of the month".
4. Set **Rolling date window** to the number of days the report should cover, up to 30.
5. Name it after the client and the report, and click **Create schedule**.

Times run in the shop's timezone, set in the shop's settings. Check it before your first schedule, because new shops default to UTC.

### How the date window counts

The window counts back from the day the run happens and includes that day. A weekly run on Monday with a 7-day window covers Tuesday through Monday, and Monday is only partly in. Finance figures for the most recent days are also still settling, so the newest days in any report will move. If the client report should cover exactly last week, set a window that reaches back past the start of that week and have your template's Dashboard filter `RawData` to the dates you report on.

Monthly close is a different job. A schedule's window stops at 30 days, so it can't cover a 31-day month. For month-end reports, run the workflow manually for the calendar month once TikTok has closed its payout period.

## Get told when it's ready

Every finished run sends an in-app notification that links to the shop's **Jobs** page, where **Download report** fetches the file.

If your agency uses Slack, connect your workspace once under organization settings, **Integrations**. Then, per shop, choose the channel its notifications post to and whether to notify on success, failure or both. A channel per client means each account manager sees only their client's runs. The Slack message names the shop and workflow and links to the job in Seller Sync, so the file itself stays behind your login.

To post into a private channel, invite the bot first by typing `/invite @SellerSync` in that channel, then refresh the channel list in Seller Sync.

## Give your team and clients the right access

Each person on your team sees only the shops you assign them, with a role per assignment:

- **Viewer** can read shops, reports and schedules and download files.
- **Operator** can also run workflows and manage schedules.
- **Manager** can also connect shops, edit templates, manage integrations and invite or remove members.

The org owner sees every shop. You can also create custom roles.

To bring a new client on, you don't need their Seller Center login. **Invite someone to connect** emails the client a link that lets them authorize their shop for your organization. The link works for 72 hours, and the client never gets access to your other clients' data.

## What it costs in credits

Credits are taken when a run starts. If every part of a run fails, they're refunded; a partial success is charged in full.

A weekly Order Report plus Finance Report costs 8 credits a run, about 35 credits a month per client. Ten clients on that schedule use around 350 credits a month. Pro includes 2,500 credits and Elite 4,000, and you can top up 100 credits for $10.

If a scheduled run can't start because credits ran out, it counts as a failure. After three failures in a row, the schedule pauses itself so it doesn't keep failing silently, and you'll need to resume it.

## Limits to plan around

- One schedule covers one shop and one workflow. Ten clients with two reports each means 20 schedules.
- The rolling window is 1 to 30 days and always ends on the day of the run.
- A run is skipped if the previous run of the same schedule is still going.
- Microsoft Teams notifications aren't available yet. Slack is the only chat integration today.
