Connection Guide: Supabase Setup
Complete this setup guide to enable CRUD operations (Create, Read, Update, Delete) in Supabase through Pabbly Connect. Follow each step carefully to ensure proper configuration.1. Create Your Supabase Account
- Visit supabase.com
- Click "Start your project" or "Sign Up"
- Create an account using your email, GitHub, or other available options
- Verify your email address if required
2. Create a New Project
- After logging in, click "New Project"
- Fill in the required details:
- Project Name: Choose a name for your project
- Database Password: Create a strong password (save this securely)
- Region: Select the region closest to your users
- Click "Create new project"
- Wait for the project to finish setting up (this may take 1–2 minutes)
3. Retrieve Your Project Credentials
You'll need these credentials to connect Pabbly Connect with Supabase.Finding Your Project URL:
- In your Supabase dashboard, go to Project Settings (gear icon in the left sidebar)
- Navigate to API section
- Under Project URL, copy the URL
- Example: https://your-project-id.supabase.co
Finding Your API Key (anon/public):
- On the same API page
- Scroll to Project API keys
- Copy the "anon public" key
4. Create Test Schema and Table
Now you'll set up a test environment with a sample table to verify everything works.4.1: Access SQL Editor
- In your Supabase dashboard, click SQL Editor in the left sidebar
- Click "New query"
4.2: Run the Setup SQL
Copy and paste the following SQL code into the editor, then click "Run":
SQL:
CREATE SCHEMA IF NOT EXISTS test_schema;
GRANT USAGE ON SCHEMA test_schema
TO anon, authenticated, service_role;
CREATE TABLE IF NOT EXISTS test_schema.pabbly_users (
id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
first_name TEXT NULL,
last_name TEXT NULL,
email TEXT NULL,
phone TEXT NULL,
CONSTRAINT users_pkey PRIMARY KEY (id)
) TABLESPACE pg_default;
ALTER TABLE test_schema.pabbly_users
ENABLE ROW LEVEL SECURITY;
CREATE POLICY "full access pabbly_users"
ON test_schema.pabbly_users
FOR ALL
TO anon, authenticated, service_role
USING (true)
WITH CHECK (true);
GRANT SELECT, INSERT, UPDATE, DELETE
ON test_schema.pabbly_users
TO anon, authenticated, service_role;
5. Configure GraphQL API Settings
To perform GraphQL queries on your custom schema, you need to add it to the search path.5.1: Navigate to API Settings
Dashboard → Project Settings → Data API → API Settings → Extra search path- Go to Project Settings (gear icon in left sidebar)
- Click on Data API in the settings menu
- Scroll down to API Settings section
5.2: Add Schema to Search Path
- Find the "Extra search path" field under Data API Settings
- Add test_schema to the extra search path
- Click "Save" to apply changes
6. Create Helper Functions (RPC)
These functions will help Pabbly Connect discover your schemas, tables, and columns dynamically.6.1: Access SQL Editor
- Click SQL Editor in the left sidebar
- Click "New query"
6.2: Create the Functions
Copy and paste the following SQL code and click "Run":
SQL:
CREATE OR REPLACE FUNCTION public.list_user_schemas()
RETURNS TABLE(schema_name text)
LANGUAGE sql STABLE SECURITY INVOKER
AS $$
SELECT schema_name
FROM information_schema.schemata
WHERE schema_owner NOT IN ('supabase_admin', 'pgbouncer')
AND schema_name <> 'extensions'
ORDER BY schema_name;
$$;
CREATE OR REPLACE FUNCTION public.list_tables_for_schema(p_schema text)
RETURNS TABLE(table_name text)
LANGUAGE sql STABLE SECURITY INVOKER
AS $$
SELECT table_name
FROM information_schema.tables
WHERE table_schema = p_schema
AND table_type = 'BASE TABLE'
ORDER BY table_name;
$$;
CREATE OR REPLACE FUNCTION public.list_columns_for_table(
p_schema text,
p_table text,
p_mode text DEFAULT 'select'
)
RETURNS TABLE (
column_name text,
data_type text,
is_primary_key boolean
)
LANGUAGE sql STABLE SECURITY INVOKER
AS $$
SELECT
c.column_name,
c.data_type,
CASE WHEN tc.constraint_type = 'PRIMARY KEY' THEN true ELSE false END AS is_primary_key
FROM information_schema.columns c
LEFT JOIN information_schema.key_column_usage kcu
ON c.table_name = kcu.table_name
AND c.column_name = kcu.column_name
AND c.table_schema = kcu.table_schema
LEFT JOIN information_schema.table_constraints tc
ON tc.constraint_name = kcu.constraint_name
AND tc.table_schema = kcu.table_schema
AND tc.constraint_type = 'PRIMARY KEY'
WHERE c.table_schema = p_schema
AND c.table_name = p_table
AND (
p_mode <> 'update'
OR c.column_name NOT IN ('id', 'created_at')
)
ORDER BY c.ordinal_position;
$$;
These functions are stored in the public schema for convenience and will be called by Pabbly Connect to discover your database structure.
7. Connect to Pabbly Connect
Now you're ready to integrate Supabase with Pabbly Connect!- Open your Pabbly Connect workflow
- Add a Supabase action step
- When prompted, enter:
- Project URL: The URL you copied in Step 3
- API Key: The anon public key you copied in Step 3
- Save your connection
Setup Complete!
Your Supabase database is now configured and ready to perform CRUD operations through Pabbly Connect. You can:- Create new records in test_schema.pabbly_users
- Read existing records
- Update record information
- Delete records
Test Your Setup
Try creating a test record in the pabbly_users table through Pabbly Connect to verify everything is working correctly.
Important Security Notes
This setup uses permissive security policies for testing. Before moving to production:- Review and restrict Row Level Security (RLS) policies
- Limit the anon role permissions to only necessary operations
- Implement proper authentication and authorization
- Never expose sensitive data through the anon role in production environments
Need Help?
If you encounter any issues during setup:- Check the Supabase Documentation
- Review your SQL Editor for any error messages
- Verify that all SQL commands executed successfully
- Ensure your API credentials are correctly copied
Attachments
Last edited:
