Overview
By the end of this guide, you’ll have an Intuned project with a scraping Job that sends data to Supabase for processing and storage. You’ll:- Set up Supabase Storage or an Edge Function endpoint for Intuned.
- Configure a Job with a Supabase-compatible sink.
- Trigger a Job and verify data lands in your database.
Prerequisites
Before you begin, ensure you have the following:- A Supabase project
- An Intuned account
- The e-commerce scraper project from the quick start deployed to your workspace.
This guide assumes you have a basic understanding of Intuned Projects and Jobs. If you’re new to Intuned, start with the getting started guide.
When to use Supabase integration
Scrapers built on Intuned typically run via Jobs on a schedule. When a JobRun completes, you want that data sent somewhere for processing or persistence.The Supabase integration delivers scraped data to your Supabase database.While this guide focuses on scraping, Supabase integration works for any Intuned Job—delivering Run results from any automation.
Choose your approach
This guide covers two approaches for connecting Intuned with Supabase:
Recommendation: Use Supabase Storage for production workloads. Intuned guarantees results are written to your bucket, and you can always reprocess by re-triggering the database webhook.
Guide
Create a products table
Both approaches require a table to store the scraped data. In your Supabase SQL editor, run:Set up the integration
- Supabase Storage
- Webhook to Edge Function
Best for: Reliability and reprocessing capabilityIntuned writes results to Supabase Storage, then a database trigger invokes an Edge Function to process each file. This approach guarantees data delivery and lets you reprocess files if needed.
Note your Endpoint and Region values.
See Supabase S3 authentication for more details.
For advanced S3 sink options, see the AWS S3 integration.
Results appear in your Supabase Storage bucket as JSON files.
1
Create a storage bucket
- Go to your Supabase dashboard
- Select Storage from the sidebar
- Select New bucket
- Name it
ecommerce-ingest - Keep it as a private bucket
2
Enable S3 compatibility
- In Storage, select S3 under Configuration
- Turn on S3 protocol connection

3
Create access keys
- In the S3 Configuration page, select New access key
- Copy both the Access key ID and Secret access key

4
Create a Job with Supabase Storage sink
- Dashboard
- TypeScript SDK
- Python SDK
- Go to app.intuned.io
- Open your
ecommerce-scraper-quickstartproject - Select the Jobs tab
- Select Create Job
- Fill in the Job ID and payloads
- Enable Sink
- Select S3 Compatible
- Enter your Supabase Storage credentials:
- Bucket:
ecommerce-ingest - Region: Your region (e.g.,
us-east-2) - Access Key ID: Your S3 access key
- Secret Access Key: Your S3 secret key
- Prefix:
ecommerce-quickstart/supabase-bucket/(optional) - Custom endpoint: Your Supabase Storage endpoint
- Bucket:
- Select Force path-style URLs
- Select Create Job

5
Trigger the Job
- Dashboard
- TypeScript SDK
- Python SDK
- In the Jobs tab, find your Job
- Select Actions > Trigger


6
Create the processing Edge Function
Create an Edge Function that processes files when they’re added to storage.
Replace the default code with:Select Deploy function to save.See Supabase Edge Functions for more details.
- Go to Edge Functions in your Supabase dashboard
- Select Create a new function
- Name it
intuned-ingest-bucket

7
Create the database webhook
Set up a database webhook to trigger your Edge Function when files are added to storage.
- Go to Database > Webhooks in your Supabase dashboard
- If prompted, select Enable Webhooks
- Select Create a new hook
- Configure the webhook:
- Name:
intuned-bucket-trigger - Table: Select
storage.objectsfrom the dropdown - Events: Select Insert
- Type: Select Supabase Edge Functions
- Edge Function: Select
intuned-ingest-bucket
- Name:
- Select Create webhook
8
Verify the results
After triggering the Job, check your Supabase products table. As files are written to storage, the database webhook fires and your Edge Function processes each one.

Data format
Intuned sends Run results as JSON. The payload structure includes metadata about the Run and the extracted data:result object and transforms it for your database schema.
Troubleshooting
Edge Function not receiving data
Cause: The Edge Function isn’t receiving webhook requests from Intuned. Common reasons include incorrect endpoint URL, missing authentication headers, or the function not being deployed. Solution: Verify the endpoint URL matches your Edge Function URL exactly. Check thatapikey and Authorization headers are set correctly with your Supabase anon key. Confirm the function is deployed in your Supabase dashboard. Ensure Verify JWT with legacy secret is turned off.
Files not appearing in storage
Cause: Intuned can’t write files to your Supabase Storage bucket. This typically happens with incorrect S3 credentials, missing path-style URL configuration, or wrong bucket name. Solution: Regenerate S3 access keys in Supabase and update your Job configuration. Enable Force path-style URLs in the Job sink settings. Verify the bucket name and endpoint match your Supabase project exactly.Database webhook not triggering
Cause: The database webhook isn’t firing when files are added to storage. The webhook may be configured for the wrong table or event type. Solution: Verify the webhook targets thestorage.objects table. Ensure the Insert event is selected. Check Edge Function logs for errors. Make sure the Edge Function is selected as the webhook target.
Data not inserting into products table
Cause: The Edge Function is receiving data but can’t insert it into your database. Common issues include table schema mismatch, unique constraint violations, or missing database permissions. Solution: Verify your products table matches the schema from the “Create a products table” step. Check if products with the same name already exist (theupsert should handle this, but verify the onConflict clause). Ensure the Edge Function uses the service role key for database access.
Job paused with sink error
Cause: For S3-compatible sinks, Intuned automatically pauses the Job when it fails to write data to storage. Solution: Check the Job status in the Intuned dashboard (shows as “Paused”). Fix the underlying credential or configuration issue. Update the Job configuration if needed, then select Resume from the dashboard. The Job continues from where it paused.Related resources
AWS S3 integration
Advanced S3 sink configuration and best practices
Webhook integration
Advanced webhook configuration and data processing patterns
Jobs
Set up scheduled and batched Job executions
Supabase Edge Functions
Official Supabase Edge Functions documentation

