Stepwork logoStepwork logo
ProcedureDeterministic AgentsMarketplace

By department

  • ITAccounts, access, helpdesk requests
  • Security & ComplianceAccess reviews, evidence, audits
  • Finance & AccountingInvoices, billing, month-end close
  • Sales & RevOpsCRM to ERP, orders, quotes
  • OperationsOrders, deliveries, dispatch
  • HR & PeopleOnboarding and offboarding
See every use case

By industry

  • HealthcareReferrals, eligibility checks, EHR entry
  • 3PL and warehousingPDF orders, WMS entry, client billing
  • Freight and truckingRate confirmations, carrier checks, TMS
  • Fuel and convenience storesStore staff, POS IDs, back office
  • ConstructionJob setup, subcontractor insurance
  • Manufacturing and distributionPO entry, supplier dates, legacy ERPs
  • Accounting firmsMonth-end across every client file
  • Field services and tradesService calls to jobs to invoices
  • MSPsNew users and license true-ups
See every industry
Security
Log inBook a Demo
ProcedureDeterministic AgentsMarketplace

By department

  • ITAccounts, access, helpdesk requests
  • Security & ComplianceAccess reviews, evidence, audits
  • Finance & AccountingInvoices, billing, month-end close
  • Sales & RevOpsCRM to ERP, orders, quotes
  • OperationsOrders, deliveries, dispatch
  • HR & PeopleOnboarding and offboarding
See every use case

By industry

  • HealthcareReferrals, eligibility checks, EHR entry
  • 3PL and warehousingPDF orders, WMS entry, client billing
  • Freight and truckingRate confirmations, carrier checks, TMS
  • Fuel and convenience storesStore staff, POS IDs, back office
  • ConstructionJob setup, subcontractor insurance
  • Manufacturing and distributionPO entry, supplier dates, legacy ERPs
  • Accounting firmsMonth-end across every client file
  • Field services and tradesService calls to jobs to invoices
  • MSPsNew users and license true-ups
See every industry
Security
Log inBook a Demo
  1. Home
  2. Use cases
  3. Data warehouse extraction

Load data that has no API into Snowflake, Databricks, or S3

Stepwork pulls reports from admin consoles, ERPs, and vendor portals that have no API or connector, on a schedule, and loads the rows into Snowflake, Databricks, or S3.

Book a DemoSee the procedures
  • Admin console
  • ERP saved search
  • HR report
Use case
Scheduled extraction from UI-only sources into the data warehouseIT
Best for
Data Engineer, Analytics Lead, IT Systems Manager
Applications used
  • Snowflake
  • Databricks
  • Amazon S3
  • NetSuite
  • Okta
Business outcome
Fresh tables from sources no connector reaches

The problem

No API, no connector. Just an export button.

  • Sign in to each admin console and vendor portal
  • Set the filters and date range on every report
  • Export the CSV, or copy the table page by page
  • Fix the columns that moved since last month
  • Upload the file to the warehouse or a shared drive
  • Find out a month later that a pull was missed

Systems

Pulls from the tools your connectors skip

Managed connectors cover the systems with an API. Stepwork reads the rest through their own screens, with a login your team grants, and hands the rows to the warehouse or bucket your pipelines already read.

  • Warehouses and storage: Snowflake, Databricks, Amazon S3, Google BigQuery, Amazon Redshift
  • ERP and finance: NetSuite, SAP Business One, Sage 100, Microsoft Dynamics GP, Coupa, Ramp
  • Identity and SaaS admin consoles: Okta, Microsoft Entra ID, Slack, Salesforce, GitHub, Zoom
  • HR and payroll: Workday, ADP Workforce Now, BambooHR, Greenhouse
  • Security and cloud consoles: CrowdStrike, Wiz, Tenable, AWS, Datadog
  • Databricks
  • Amazon S3
  • Google BigQuery
  • Amazon Redshift
  • NetSuite
  • SAP Business One
  • Sage 100
  • Microsoft Dynamics GP
  • Databricks
  • Amazon S3
  • Google BigQuery
  • Amazon Redshift
  • NetSuite
  • SAP Business One
  • Sage 100
  • Microsoft Dynamics GP
  • Databricks
  • Amazon S3
  • Google BigQuery
  • Amazon Redshift
  • NetSuite
  • SAP Business One
  • Sage 100
  • Microsoft Dynamics GP
  • Databricks
  • Amazon S3
  • Google BigQuery
  • Amazon Redshift
  • NetSuite
  • SAP Business One
  • Sage 100
  • Microsoft Dynamics GP
  • Coupa
  • Ramp
  • Microsoft Entra ID
  • Zoom
  • Coupa
  • Ramp
  • Microsoft Entra ID
  • Zoom
  • Coupa
  • Ramp
  • Microsoft Entra ID
  • Zoom
  • Coupa
  • Ramp
  • Microsoft Entra ID
  • Zoom
  • ADP Workforce Now
  • BambooHR
  • Greenhouse
  • CrowdStrike
  • Wiz
  • Tenable
  • Datadog
  • ADP Workforce Now
  • BambooHR
  • Greenhouse
  • CrowdStrike
  • Wiz
  • Tenable
  • Datadog
  • ADP Workforce Now
  • BambooHR
  • Greenhouse
  • CrowdStrike
  • Wiz
  • Tenable
  • Datadog
  • ADP Workforce Now
  • BambooHR
  • Greenhouse
  • CrowdStrike
  • Wiz
  • Tenable
  • Datadog
  • ADP Workforce Now
  • BambooHR
  • Greenhouse
  • CrowdStrike
  • Wiz
  • Tenable
  • Datadog
  • ADP Workforce Now
  • BambooHR
  • Greenhouse
  • CrowdStrike
  • Wiz
  • Tenable
  • Datadog

Example procedures

Two pulls, step by step

One repeats for every app on your list and checks the columns before it loads. One checks that an ERP report adds up before it lands. Swap in your warehouse above each one and the steps stay the same.

Weekly user and activity snapshot from every admin console into Snowflake

Every Monday Stepwork works through your snapshot list, reads each app's users, roles, and last sign-in from its admin console, checks the columns, and writes the rows to Snowflake.
  • Excel
  • Okta
  • Salesforce
  • GitHub
  • Snowflake
  • Slack
Swap in your systemsThe steps stay the same. Only the screens change.
Warehouse
Team chat
Weekly user and activity snapshot from every admin console into Snowflake
Extraction
Excel

Read the apps on the snapshot list

Scheduled · Mondays at 6:00

Extracted variables

  • app_name
  • target_table
  • expected_columns
Extraction

Read every user, role, and last sign-in

Input variables

  • app_name

Extracted variables

  • user_rows
  • columns
Rule logic

Do the columns match the table?

Input variables

  • columns
  • expected_columns

Paths

  1. If the columns read don't match the ones the table expectsThen: Flag the change in Slack
  2. OtherwiseThen: Write the rows to Snowflake
Execution
If the columns changed
Slack

Flag the change in Slack

Input variables

  • app_name
  • columns

Output

  • flagged_app
API
If they match
Snowflake

Write the rows to Snowflake

Input variables

  • user_rows
  • target_table

Output

  • rows_written
Summary

Sum up the snapshot for the data team

Input variables

  • rows_written
  • flagged_app

Drag to explore · pinch to zoom

Step by step

  1. 1
    The app list comes in
    Stepwork reads the snapshot list your data team keeps in Excel: each app, the table its rows go to, and the columns that table expects. Each row is one pass through the loop.
  2. 2
    Each admin console gets read
    Inside the solid frame, Stepwork runs the extraction recorded for that app's admin console and reads every user, role, and last sign-in, page by page.
    Repeats: For each app on the list · 24 apps
  3. 3
    The rule checks the shape
    If the columns don't match the ones the table expects, the run takes the top path. If they match, the rows go on to load.
    • If the columns changedFlag the change in Slack
    • If they matchWrite the rows to Snowflake
    Repeats: For each app on the list · 24 apps
  4. 4
    Changes get flagged
    Only when the columns changed: the data team gets a message in Slack naming the app and the columns that moved, and nothing loads for that app.
    Only on this path: If the columns changedRepeats: For each app on the list · 24 apps
  5. 5
    The rows get written
    The API card writes the rows to the app's table in Snowflake.
    Only on this path: If they matchRepeats: For each app on the list · 24 apps
  6. 6
    The data team gets the picture
    After the last app, the Summary card lists how many rows each table got and which apps need a look.

Field map

FromTo
OktaPeople: name, status, last sign-inSnowflakeokta_users
SalesforceUsers: profile, license, last loginSnowflakesalesforce_users
GitHubOrg members: role, last activeSnowflakegithub_members

Month-end AR aging from NetSuite into Snowflake

On the first business day Stepwork runs the AR aging saved search in NetSuite, checks that the rows add up to the report's own total, and writes them to Snowflake. A report that doesn't add up goes to finance instead.
  • NetSuite
  • Snowflake
  • Slack
Swap in your systemsThe steps stay the same. Only the screens change.
ERP
Warehouse
Team chat

Step by step

  1. 1
    The report runs
    Stepwork signs in to NetSuite, runs the AR aging saved search for the close, and reads every row across every page, plus the report's total line.
  2. 2
    The rule checks the total
    If the rows don't add up to the report's total, the run takes the top path. If they tie out, they go on to load.
    • If they don't add upSend the gap to finance in Slack
    • If they tie outWrite the rows to Snowflake
  3. 3
    Gaps go to finance
    Only when they don't add up: finance gets the report total and what was read in Slack, and nothing half-read lands in Snowflake.
    Only on this path: If they don't add up
  4. 4
    The rows get written
    The API card writes the aging rows to the ar_aging table in Snowflake.
    Only on this path: If they tie out
  5. 5
    Finance hears it's current
    The Summary card tells finance the table is current, with the row count and the total it tied out to.
    Only on this path: If they tie out

Field map

FromTo
NetSuiteAR aging: customerSnowflakear_aging.customer_name
NetSuiteAR aging: days past dueSnowflakear_aging.days_past_due
NetSuiteAR aging: open balanceSnowflakear_aging.open_balance

Flows

Extraction flows these procedures run

Each flow is one recorded pull from one system's screens. Procedures run them on a schedule and hand the rows to your warehouse.

  • Okta
    Okta

    Extract full user directory with status

    Pages through the Okta user list and extracts name, email, status, and last login for every account into a table.

    Extraction · Scheduled
  • Slack
    Slack

    Extract member list with last activity

    Pages through Slack member management and extracts name, email, role, and last-active date for every member.

    Extraction · Scheduled
  • Salesforce
    Salesforce

    Extract active users with license types

    Extracts active users with license types, profiles, and last login into a table.

    Extraction · Scheduled
  • NetSuite
    NetSuite

    Extract AR aging and overdue invoices

    Runs AR aging in NetSuite and extracts overdue invoices with customer, amount, and days past due for collections.

    Extraction · Scheduled
  • Workday
    Workday

    Extract headcount and open position snapshot

    Runs the Workday headcount report and extracts filled positions, open requisitions, and pending hires by cost center.

    Extraction · Scheduled
  • AWS
    AWS

    Extract monthly cost by service

    Opens Cost Explorer, sets the monthly view, and extracts spend by service into a table for reporting.

    Extraction · Scheduled
  • CrowdStrike
    CrowdStrike

    Extract detections summary

    Signs into the Falcon console and extracts recent detections with severity, host, and status.

    Extraction · Scheduled
  • Zylo
    Zylo

    Extract SaaS renewal calendar

    Signs into Zylo and extracts contracts renewing in the next 90 days with vendor, value, owner, and auto-renew flag.

    Extraction · Scheduled
  • LinkedIn Campaign Manager
    LinkedIn Campaign Manager

    Export a demographic breakdown

    Opens a campaign's demographics report for the period and exports the company and job-title rows.

    Recorded on your screens
See every reporting & visibility flow in the Marketplace

More procedures

More reporting procedures

Ready-made procedures in the Marketplace that pull from several tools at once.

  • Google WorkspaceMicrosoft 365Atlassian2 more
    Google Workspace · Microsoft 365 · Atlassian + 2 more

    Monthly license utilization report

    Extracts license usage from Google Workspace, Microsoft 365, Atlassian, Zoom, and Adobe on the first of the month, consolidates seats-owned versus seats-active per platform, and posts the utilization table with waste estimates to the IT leadership channel.
  • AWSMicrosoft AzureGoogle Cloud Platform1 more
    AWS · Microsoft Azure · Google Cloud Platform + 1 more

    Cloud cost weekly digest

    Extracts weekly cost by service from AWS, cost by resource group from Azure, and compute utilization from GCP, flags idle resources and week-over-week jumps, and posts the consolidated digest to the platform channel.
  • LookerTableauSlack
    Looker · Tableau · Slack

    Monday leadership reporting pack

    Every Monday, downloads the dashboard snapshots from Looker and workbook exports from Tableau that make up the leadership pack, assembles them in order, and delivers the pack to the leadership channel and email list before the staff meeting.

Why Stepwork

The same pull, the same columns, every run

Stepwork runs the extraction you recorded once, so every run opens the same report with the same filters and hands over the same columns. A rule checks the shape before anything loads, so a changed report raises a flag instead of breaking a table. Every load traces back to a run record: which report, which login, how many rows, and when.

ProceduresDeterministic agents
Book a Demo

Related use cases

More use cases

  • CRM to ERP data mappingStepwork maps a closed deal from any CRM into a sales order or invoice in your ERP, field by field, and writes the number back. Dynamics, Act!, Sage, QuickBooks, and more.Learn more
  • IT helpdesk automationStepwork runs the requests your helpdesk repeats, from password and MFA resets to licenses and mailbox access, from a Teams message or a ticket, the same way every time.Learn more
See every use case

FAQ

Common questions

  • Those connect to a source through its API. Stepwork reads sources through their screens: admin consoles, ERP saved searches, and portals with no API or connector. The rows land in the same warehouse, so both feed the same models.
  • Snowflake, Databricks, Amazon S3, Google BigQuery, and Amazon Redshift. The load is an API step, so any warehouse or bucket with an API works the same way.
  • The rule checks the columns before anything loads. If they changed, nothing loads for that app and the data team gets a message saying what moved, so a renamed column never breaks a table quietly.
  • Yes. The date range is a variable, so the same pull runs once per month to backfill, and each month is recorded as its own run.
  • The way your team does: with a login read from your vault when the run starts, including MFA codes and passkeys. Stepwork keeps the reference, not the password.
    Credentials

The math

What the manual version costs a data team

Example volumes for a team pulling 25 reports a week from tools without a connector. Swap in yours.

Illustrative estimate, not a quote. These are example volumes and typical hand times, not a customer's results. Your numbers will differ, and we can work them out with you.
The manual taskTimes a weekMinutes eachHours a week
Export a report from an admin console or portal25104.2
Clean and reshape the export25156.3
Upload and load the file2552.1
Redo a pull that broke or was missed3301.5
Hours a week
14
Hours a year
700
Of one full-time person
35%
Example volumes, not a customer's numbers. Minutes are the typical time to do each step by hand. Hours a year assume 50 working weeks.

See it run on a process you already repeat

Bring one. We will show you what it looks like as a flow and what each run records.

Book a Demo
Stepwork

Deterministic agents for work that must run the same way every time.

ProcedureContainersDeterministic AgentsMarketplaceUse CasesIndustriesSecurityClaude Co-Work AlternativeStepwork MCPAngelList Case StudyFAQ
Terms and ConditionsPrivacy PolicyData Processing AgreementSubprocessors

2261 Market Street #4481, San Francisco, CA 94114, USA

Loot Discount inc dba Stepwork

© 2026 Stepwork. All rights reserved.