ALTER TABLE public.customers ADD COLUMN IF NOT EXISTS visit_frequency text default '';
ALTER TABLE public.customers ADD COLUMN IF NOT EXISTS is_target boolean default false;
ALTER TABLE public.customers ADD COLUMN IF NOT EXISTS postcode text default '';
ALTER TABLE public.customers ADD COLUMN IF NOT EXISTS area text default '';
ALTER TABLE public.customers ADD COLUMN IF NOT EXISTS district text default '';
CREATE TABLE IF NOT EXISTS public.surveys (
id bigserial primary key,
rep text, customer text, survey_date date,
problem1 text default '', problem2 text default '', problem3 text default '',
created_at timestamptz default now()
);
ALTER TABLE public.surveys ENABLE ROW LEVEL SECURITY;
DROP POLICY IF EXISTS "open" ON public.surveys;
CREATE POLICY "open" ON public.surveys FOR ALL USING (current_setting('request.headers',true)::json->>'x-app-secret' = 'od2S2mXqttJVpvUzVYaDLe9tKTjZ1HABxJIpAOOs') WITH CHECK (current_setting('request.headers',true)::json->>'x-app-secret' = 'od2S2mXqttJVpvUzVYaDLe9tKTjZ1HABxJIpAOOs');
CREATE TABLE IF NOT EXISTS public.suppliers_data (
id bigserial primary key,
name text not null,
payment_terms text default '', settlement_discount text default '',
rebate_period text default '', rebate_tiers text default '',
spend_ytd numeric default 0, spend_target numeric default 0,
product_rebates text default '', special_deals text default '',
rep_name text default '', rep_phone text default '',
price_list_url text default '', notes text default '',
created_at timestamptz default now()
);
ALTER TABLE public.suppliers_data ENABLE ROW LEVEL SECURITY;
DROP POLICY IF EXISTS "open" ON public.suppliers_data;
CREATE POLICY "open" ON public.suppliers_data FOR ALL USING (current_setting('request.headers',true)::json->>'x-app-secret' = 'od2S2mXqttJVpvUzVYaDLe9tKTjZ1HABxJIpAOOs') WITH CHECK (current_setting('request.headers',true)::json->>'x-app-secret' = 'od2S2mXqttJVpvUzVYaDLe9tKTjZ1HABxJIpAOOs');
CREATE TABLE IF NOT EXISTS public.app_settings (
key text primary key, value text default ''
);
ALTER TABLE public.app_settings ENABLE ROW LEVEL SECURITY;
DROP POLICY IF EXISTS "open" ON public.app_settings;
CREATE POLICY "open" ON public.app_settings FOR ALL USING (current_setting('request.headers',true)::json->>'x-app-secret' = 'od2S2mXqttJVpvUzVYaDLe9tKTjZ1HABxJIpAOOs') WITH CHECK (current_setting('request.headers',true)::json->>'x-app-secret' = 'od2S2mXqttJVpvUzVYaDLe9tKTjZ1HABxJIpAOOs');
INSERT INTO public.app_settings (key,value) VALUES ('survey_enabled','true') ON CONFLICT (key) DO NOTHING;
2
Project Settings → API → copy Project URL and anon key.
🔔 Push Notifications (optional)
Install the free ntfy app, subscribe to your topic, get a ping every time a rep logs a visit.
🖴
Import customer accounts
Database connected. Import all 970 accounts to get started.