Team workflow guide

How to automate a weekly report for your team

Pick the decision, connect the sources, define the numbers, and schedule a report your team reads.

A weekly revenue report card in type.com showing $182.4k, up 6.1%, with an eight-week bar chart, a Monday 8:00 AM schedule, and a Slack notice that the report is ready.

How do you reconcile a weekly ecommerce performance report?

Build a weekly ecommerce report around store net sales, total paid media spend, and separately labeled platform attribution. Reconcile each source before recommending a decision.

This worked example uses a fictional USD store and deliberately round test values. It is a second acceptance-test fixture, not the revenue example shown in the existing figures and not a customer result. It covers September 28–October 4, 2026, compared with September 21–27, and would run Monday, October 5 at 8 AM America/New_York.

Connect the store and advertising accounts available to the Space, plus Klaviyo or a reviewed export when a required read is unavailable. Check the exact store, account IDs, currency and timezone in each returned report. Access to one platform does not mean all requested reports or fields are available. Ask for one source report manually before scheduling the combined report.

Define net sales using the store report: gross sales less discounts and returns, excluding tax and shipping. State whether returns are counted by processing date or attributed to the original sale, and use the same basis in both periods. Use complete account-level ad spend, not the sum of an arbitrary top-campaign list. If Meta or another paid channel is missing, label the ratio partial and do not call it blended marketing efficiency.

Email-attributed revenue and ad-attributed revenue can both claim the same order. Keep them as separate platform-reported diagnostics with their attribution windows; never add them to Shopify revenue. A higher efficiency ratio does not establish that a particular campaign caused the change. Budget changes remain recommendations for the team to review.

  1. 1

    Check the expected answer against the fixture

    The headline should say sales and spend both grew 10%, leaving MER flat at 5.00×. Klaviyo attribution increased 16%, but the fixture cannot prove incremental email lift or support adding $29,000 to net sales.

  2. 2

    Test missing and inconsistent data

    Remove Meta access and require a partial-spend warning with no blended MER. Set prior sales to zero and require an undefined percentage. Supply a different currency or incomplete date range and require the combined calculation to stop.

  3. 3

    Test privately, then enable deliberately

    Save the scheduled automation before Test. Compare its private test output with source totals and check the destination and timezone. Enable only after the owner accepts the result; verify the first scheduled post actually reaches revenue-weekly.

Copyable instructions: weekly ecommerce performance report

Create a weekly ecommerce report in revenue-weekly for the last complete Monday–Sunday week in America/New_York, compared with the previous complete week. Use /weekly-revenue-report and the agreed store metric definitions. Read Shopify net sales and paid non-test orders, complete spend from every agreed paid media account, and Klaviyo campaign and flow performance. Record source account, dates, currency, timezone, extraction time, metric definition and attribution window. If a required connector or report is unavailable, label it missing; do not estimate. Reconcile gross sales minus discounts minus returns to store net sales. Reconcile account spend to source totals. If currencies or reporting windows differ, stop combined calculations and explain the mismatch. Calculate net-sales change and total-paid-spend change as (current - prior) / prior. When prior is zero, report the absolute change and percentage as undefined. Calculate net sales / total paid media spend only when coverage is complete and spend is nonzero; call it MER, not incremental ROAS or profit. Keep Klaviyo-attributed revenue and ad-platform-attributed revenue separate from store sales and from each other. State each source attribution window. Output: dates and freshness; one evidence-backed headline; current/prior table; missing data and reconciliation flags; two questions for the team. Separate observed changes from hypotheses. Do not change campaigns, budgets or email flows.

Fictional acceptance-test totals; separate from the figures elsewhere in this guide
MetricPrior weekCurrent weekExpected interpretation
Shopify net sales$100,000$110,000+10%; store sales, excluding tax and shipping
Google Ads spend$12,000$13,000+8.3%
Meta Ads spend$8,000$9,000+12.5%
Total paid media spend$20,000$22,000+10%; assumes these are all paid channels
MER: net sales / total paid spend5.00×5.00×Flat efficiency despite higher sales
Klaviyo-attributed revenue$25,000$29,000+16%; attribution window must accompany this number
  • Compare the first live report with the original source dashboards. Record any late-data revisions instead of silently replacing last week’s baseline.
  • This fixture checks arithmetic and reporting rules. It does not prove that your connected accounts, permissions or scheduled delivery work; test those in your own Space.

What should a weekly team report answer?

Start with one decision the team makes every week, then pick the few numbers that decision depends on.

Reports that collect every chart get skimmed and then ignored. A weekly report earns attention when it answers a question someone has to act on: Should we move ad budget? Which deals need help? Is refund volume a product problem? Write the question down, name the person who owns the answer, and decide what they will do differently depending on the result.

Then choose three to six metrics that answer it, and the system each one comes from. If a number does not change a decision, leave it out. You can always ask for more detail in the thread after the report lands.

Weekly report starting points by team
TeamWeekly questionSourcesFlag when
MarketingWhich channels should get more or less budget?Google Ads, Meta Ads, GA4, HubSpotCost per lead moves more than 20% week over week
SalesWhich deals need help before Friday?Salesforce or HubSpot, GongA late-stage deal has had no activity for 7 days
EcommerceWhat drove revenue, and is anything breaking?Shopify, Stripe, Polar AnalyticsRefunds or stockouts rise more than 10%
FinanceAre we on plan for the month?QuickBooks, Stripe, BigQuerySpend in any category is over its monthly pace
SupportWhat are customers struggling with?Zendesk or Intercom, LinearOne topic grows past 10% of tickets

Step 1: How do you connect the data sources?

Connect the source systems to one shared Space, and give it only the access this report needs.

In type.com, connections give a Space access to your tools. Use organization connections for shared business systems, like your store, billing, or CRM, so the report does not depend on one person's login. Personal connections use one person's account and suit email or calendars better.

A connection added to the workspace is not available in every Space. Assign it to the Space that will run the report, and nowhere else it is not needed. Where a tool supports read-only roles, use one: a report only needs to read.

Diagram of the weekly report pipeline: Shopify and Stripe sources, the weekly-revenue-report skill with metric definitions, an automation that runs every Monday at 8:00 AM, and delivery to the revenue-weekly channel and an optional Slack channel.
The whole setup in four parts: sources, definitions, schedule, and delivery.
  1. 1

    Pick the Space that owns the report

    Use the team's existing Space, such as Finance & Ops, so the report, its follow-up questions, and its history live next to the rest of that team's work.

  2. 2

    Connect each source once

    Open the Space's Settings, Connections, and add the systems from your table. For the revenue example, that is Shopify and Stripe.

  3. 3

    Ask one question by hand

    In a thread, ask for last week's revenue and orders compared with the week before. If the numbers match what you see in the source, the connections are working.

Step 2: How do you make the numbers consistent every week?

Write the metric definitions and report format once, as a skill, so every run calculates the same way.

Most bad AI reports are a definitions problem. Is revenue gross or net of refunds? Does the week start Monday? Which timezone? Put the answers in a skill, a reusable SKILL.md the automation reads before it starts. The automation instructions then stay short and describe only this week's job.

Keep the skill narrow and explicit. When the finance lead changes a definition, they update the skill once and every future run follows it. Teammates who spot a problem can suggest an edit for the owner to review.

Example skill: /weekly-revenue-report

Period: the last complete Monday–Sunday week in America/New_York, compared with the week before. Revenue: Shopify net sales (gross sales minus discounts and refunds), in USD. Orders: paid Shopify orders, excluding test orders. Subscriptions: new and canceled Stripe subscriptions in the period. Format: one headline sentence with the biggest change and its cause, then a bullet per metric (current, prior, % change), then flags, then two questions for the team. Flags: any metric that moved more than 10%. Missing data: if a source fails or looks incomplete, say which number is missing. Never estimate it.

Step 3: How do you schedule the report?

Create a scheduled automation in the Space, point it at the skill, choose the destination channel, and set the day, time, and timezone.

In type.com, scheduled automations open like documents and apps, with the instructions, schedule, model, destination, and run history in one editor. You can find them again under Library, Automations.

The Weekly revenue report automation in type.com with instructions that use the weekly-revenue-report skill with Stripe and Shopify, Claude Opus 5 as the model, the revenue-weekly destination channel, and a weekly Monday 8:00 AM New York schedule.
The automation holds the recurring job: instructions, model, destination channel, and schedule. The skill holds the definitions.
  1. 1

    Choose Create, then Automation

    Pick the Space that owns the report. The new automation opens in the Library, paused.

  2. 2

    Name it and write short instructions

    Invoke the skill by its handle, name the sources, and say what the team should get. The example below is enough.

  3. 3

    Pick the model

    Leave the Space default, or pin a model such as Claude Opus 5 so every run behaves the same way.

  4. 4

    Choose the destination channel

    Send the report to a dedicated channel, such as revenue-weekly, so each week's run is easy to find and discuss.

  5. 5

    Set the schedule

    Choose Weekly, select the day, and set a time and timezone that land before the meeting where the decision happens. Monthly reports can run on a calendar day or the first or last weekday.

  6. 6

    Save

    Save keeps the automation paused. Test it before you enable it.

Example automation instructions

Use /weekly-revenue-report. Compare last week with the week before using Stripe and Shopify. Lead with the one number that changed most and why. Flag anything over 10%. End with two questions for the team.

Step 4: How do you test the report before it runs?

Run a private test, check every number against its source, tighten the instructions, and only then enable the schedule.

Select Test in the automation editor. The test runs in a private thread visible only to you, using the saved instructions, so nobody else sees a half-finished report. Open the tool calls to see which sources were queried and what came back.

Compare two or three numbers against the source dashboards. When something is off, fix the definition in the skill rather than adding exceptions to the automation. When the test matches, select Enable.

A private test run of the weekly revenue report showing the Shopify and Stripe queries it made, next to a checklist to complete before enabling the automation.
The test runs privately. Check the queries and a few numbers before you enable it.
Common problems with a first scheduled report
ProblemWhat to check
No thread was createdThe automation is enabled, and the schedule's day, time, and timezone are right.
AI cannot reach the dataThe connection is assigned to this Space, has the right scope, and has not expired.
Numbers do not match the dashboardDate range, timezone, and gross versus net definitions in the skill.
The report is too longCut metrics nobody acts on, and ask for one headline sentence first.
Too many notificationsThe Space's notification settings or the automation's destination channel.

What does the finished weekly report look like?

A short post in the team's channel: the headline change, the key numbers against last week, the flags, and questions the team can answer in the same thread.

The report above fits on one screen. The first line says what changed and why. The bullets give current values with the change from last week. The flag calls out the one number that crossed its threshold, and the closing questions tell the team what to decide.

Because the report is a thread, the discussion happens right under it. Dana asks for refunds by SKU, and the AI answers from the same connections and definitions: most of the jump is the Trail 24oz. Next Monday, the new run posts beside it, so anyone can compare weeks without digging through files.

If your team lives in Slack, map the report channel to a Slack channel. People can follow the report there and ask the Space for more detail without switching tools.

The weekly revenue report for Sep 21–27 posted in the revenue-weekly channel on Monday, Sep 28. It reports revenue up 6.1% and flags refunds up 14%. Dana asks for refunds by SKU, and the AI replies with a table showing the Trail 24oz up 61%.
Monday's run lands in revenue-weekly. Dana asks a follow-up in the same thread, and the AI answers from the same data and definitions.

How do you keep the report accurate week after week?

Treat the first month as a tuning period: review every run, fix definitions at the source, and cut anything nobody uses.

When a run gets something wrong, fix it in the thread where it happened. Reply with the correction, ask the AI to explain what it used, then update the skill. Instructions written from real mistakes are better than instructions written in advance.

After four runs, ask the owner which parts changed a decision. Remove the rest. A report that shrinks over time is usually one the team keeps reading.

If your team is still rebuilding the same prompts in private chats, start with how to share Claude work across your team.

  • Always compare with the prior period, never a lone number.
  • Name missing or late data instead of estimating it.
  • Keep definitions in the skill and the weekly job in the automation.
  • Separate what the data shows from suggested explanations.
  • Require a person's approval before the report triggers any change, like a budget edit.

Frequently asked questions

Can AI write a weekly report automatically?

Yes. A scheduled automation can pull data from connected tools, compare it with the prior week, and post a written summary on a fixed day and time. It works best when the metric definitions, date range, and flag rules are written down in advance.

What should a weekly team report include?

The exact date range and timezone, the one number that changed most and why, current and prior values for each key metric, anything past a set threshold, any missing or late data, and the decisions or questions the team should pick up.

How do you schedule a weekly report in type.com?

Choose Create, then Automation, and pick a Space. Write the instructions, choose the model and destination channel, set the schedule to Weekly with a day, time, and timezone, then Save. New automations start paused, so run Test and then Enable.

How do you stop an AI report from making up numbers?

Connect the source systems instead of pasting exports, define every metric in a shared skill, require a prior-period comparison, and tell the automation to name missing data rather than estimate it. Review the first few runs before the team relies on it.

Whose AI subscription runs a scheduled report?

In type.com, a scheduled automation runs with its creator's execution identity and provider credentials. If the creator connected a Claude or ChatGPT subscription, eligible runs use it; otherwise they use the workspace allowance.

Can the weekly report go to Slack?

Scheduled automations post to a channel in the Space. If the team works in Slack, map that channel to a Slack channel so people can follow the report and ask follow-up questions without leaving Slack.