Skip to content
NewNeenOpal Earns ISO 42001 Certification for AI GovernanceKnow More

AI-Augmented ETL for Automating Multi-Portal Retail Reporting on AWS

Get in touch

Talk to our team

Tell us what you’re working on. A senior consultant will follow up with next steps.

Overview

A consumer beauty and personal care brand needed to bring its Walmart and Amazon supplier and performance data into a single AWS RDS PostgreSQL database. Walmart's data was split across a standard supplier API and three separate reporting portals (Retail Link, Scintilla, and Supplier One), each with its own authentication, file formats, and update cadence.

NeenOpal designed a hybrid ETL platform with two ingestion paths running in parallel: an orchestrated API pipeline for the data Walmart exposes directly, and an AI-driven report retrieval pipeline for the data that fell outside the scope of the client's existing API access. Both paths converge on a shared Glue transformation layer, a common S3 staging area, and a single PostgreSQL database, with a separate one-time Spark job bringing in Amazon Vendor Central's historical data. The result is a single, config-driven system rather than a set of one-off integrations.

15
hrs/wk Manual Portal Downloads Eliminated
90%
Reduction in Time to Onboard a New Report
99%
Load Reliability via Upsert Pattern
1
Source of Truth Replacing Two Disconnected Workflows

Customer Challenges

Before engaging NeenOpal, the client's Walmart and Amazon reporting data had no common integration point, no staging layer, and no repeatable load process, so every report was a manual download followed by ad hoc handling.

  • No Single Integration Point

    Walmart's standard supplier API covers only a subset of reporting data (purchase orders, item catalog). The remaining wide range of reports, including Purchase Orders, OTIF, ASN, Disputes, Forecast, Store Sales & Inventory, and Deductions, exist only as exports behind three separately authenticated portals, each with its own UI, session handling, and export mechanics.

  • Heterogeneous Cadences, Formats, and Schemas

    Reports across the three portals run on different cadences (daily, weekly, monthly) and arrive as CSV or Excel exports with inconsistent structure: non-standard workbook states, embedded summary and grand-total rows, and duplicate column headers that require positional disambiguation rather than name-based mapping.

  • No Staging Layer or Repeatable Load Process

    There was no S3 staging convention, no event-driven trigger, and no transformation layer in place. Every file was a manual download followed by ad hoc handling, with no schema validation step to catch drift before it reached a database.

  • Amazon Vendor Central Required a Separate, One-Time Migration

    Amazon Vendor Central data (catalog, sales, traffic, demographics, market basket, and repeat-purchase reporting) had no relationship to the Walmart pipeline and needed its own ingestion path into the same target database, without duplicating the Walmart-specific logic.

Automating Multi-Portal Retail Reporting

Solutions

NeenOpal built two ingestion paths that share a common downstream architecture, plus a separate historical load job for Amazon.

  1. Path 1: Orchestrated API Ingestion

    AWS Step Functions orchestrates scheduled pulls from the Walmart Supplier API using OAuth2 client-credentials authentication. Raw JSON responses land in an S3 Bronze layer, after which a Glue job flattens nested structures, deduplicates records, and loads the result into RDS PostgreSQL using an upsert pattern keyed on natural identifiers, so re-runs never create duplicate rows.

  2. Path 2: AI-Driven Report Retrieval

    For data that fell outside the scope of the client's existing API access, NeenOpal built a Claude AI skill that navigates each portal's UI to trigger and download the correct report on its scheduled cadence, and validates the resulting file's structure against a live schema definition in report_config.json before uploading it to a report-specific prefix in the S3 Bronze layer. The retrieval work is split across six parallel subagents spanning the three portals, so one slow or failing download never blocks the rest of the batch; each subagent independently retries and resolves its own click failures.

  3. Event-Driven, Config-Driven Transformation

    An S3 PUT event triggers a Lambda function the moment any file lands, which starts a Glue job. The job auto-detects file type from binary content rather than trusting the file extension, applies column cleaning and type casting defined per report in report_config.json, resolves duplicate column names positionally, and strips embedded summary rows before loading into PostgreSQL. Because behaviour is entirely config-driven, onboarding a new report is a JSON entry, not a code change, in either the AI retrieval skill, the Lambda, or the Glue job.

  4. Load-Mode Control and Failure Handling

    Control tables track each entity's load mode (FULL or INCREMENTAL) and can be flipped with a single UPDATE statement, with no redeployment required. Any failure in either pipeline, whether an API timeout, a portal login failure, or a schema mismatch, publishes an SNS notification containing the report name, file, and error detail so the team can respond before it affects downstream reporting.

  5. Amazon Vendor Central: A Separate Historical Load

    A dedicated Lambda and Glue/Spark job loads Amazon Vendor Central's catalog, sales, traffic, demographics, market basket, and repeat-purchase data into the same PostgreSQL database, landing in the same analytics schema and exposed through the same Silver/Gold view pattern used for Walmart. This keeps both retailers queryable from one place without merging their underlying tables into a single joined schema.

  6. Shared Infrastructure Across Both Pipelines

    Both Walmart pipelines share the same supporting services. Amazon S3 holds the Bronze layer for raw landing, partitioned by source and report, while AWS Glue handles transformation, type casting, and loading into Amazon RDS PostgreSQL as the target analytics database. AWS Secrets Manager and Parameter Store hold credentials and runtime configuration, Amazon CloudWatch and EventBridge handle scheduling and monitoring, and Amazon SNS carries failure alerting.

Services

  • Claude
  • AWS Step Functions
  • AWS Lambda
  • AWS Glue
  • Amazon S3
  • Amazon RDS
  • Amazon EventBridge
  • Walmart Supplier API
  • Walmart Retail Link
  • Walmart Scintilla
  • Walmart Supplier One

Benefits

  • Fully Automated Report Retrieval Across Three Portals

    Eliminated manual logins and downloads across Walmart Retail Link, Scintilla, and Supplier One. Reports are now retrieved, validated, and uploaded automatically on their correct cadence.

  • Centralised Reporting Across Walmart and Amazon

    Consolidated data from Walmart's standard API, AI-retrieved portal reports, and Amazon Vendor Central data into a single PostgreSQL database, giving the business one place to query performance across both retailers instead of switching between portals.

  • Immediate, Actionable Failure Alerts

    SNS notifications carry enough detail (report, file, error) that the team can diagnose and resolve most failures without digging through logs first.

  • Operational Control Without Redeployment

    Load mode (FULL vs. INCREMENTAL) is controlled through a database table, not application code, so the team can reset or replay a load without a deployment cycle.

  • Two Ingestion Paths, One Architecture

    API-based and AI-driven ingestion share the same S3 Bronze layer, Glue transformation logic, and PostgreSQL target, so the team maintains one architecture instead of two disconnected systems.

  • Config-Driven Onboarding

    New reports, from either pipeline, are onboarded through report_config.json alone. No changes to the AI skill, Lambda, or Glue job code are needed, which keeps the marginal engineering cost of a new report close to zero.

  • Resilience Built Into the Ingestion Layer

    Parallel subagents, per-report retries, upsert-based loads, and schema validation against a live config mean transient failures (a slow portal, a malformed export) are contained and do not require manual intervention to recover from.

Conclusion

NeenOpal delivered a production-grade, event-driven ETL platform that treats AI-based report retrieval as a peer to traditional API ingestion, not a workaround. Config-driven onboarding, upsert-based loads, parallelised retrieval, and automated failure alerting give the client a system that scales to new reports and new retailers without repeated re-engineering.

FAQ

Common questions about AI-augmented ETL and multi-portal retail reporting

What is AI-driven report retrieval, and when is it needed instead of an API?

AI-driven report retrieval uses an AI agent to navigate a supplier portal's user interface, trigger the correct report, and download it on schedule, in place of a programmatic API call. It becomes necessary when a retailer's API covers only part of its reporting surface and the remaining reports exist only as portal exports behind separate logins. Engineered properly, with schema validation, retries, and alerting, it behaves as a first-class ingestion path rather than a brittle workaround.

How does an event-driven ETL pipeline on AWS work?

Rather than running transformations on a fixed timetable and hoping the data has arrived, an event-driven pipeline reacts the moment a file lands. An S3 PUT event triggers a Lambda function, which starts a Glue job that cleans, casts, and loads the data into the target database. This removes the lag between arrival and processing, and it means a late or early file is handled correctly without anyone adjusting a schedule.

What does config-driven onboarding mean for adding a new report?

Config-driven means the behaviour of the pipeline is described in a configuration file rather than written into code. Column cleaning rules, type casting, schema definitions, and retrieval cadence all live in a single JSON file, so adding a new report is a new entry in that file rather than a change to the AI retrieval skill, the Lambda, or the Glue job. The marginal engineering cost of each additional report stays close to zero.

Authors

  • Manan KumarData Analystin

Case studies

Related case studies