Influencer Portal System
A web-based system for managing influencer/partner relationships. Admins invite influencers, influencers upload custom splash screens, admins approve them, and the app displays personalized content to referred users.
Live URLs
| Component | URL |
|---|---|
| Admin Panel | https://hypnoelp.com/influencers/admin/ |
| Influencer Portal | https://hypnoelp.com/influencers/ |
| Referral Page | https://hypnoelp.com/share?code=XXX (dev) |
Components
1. Admin Panel
- URL:
https://hypnoelp.com/influencers/admin/ - Source:
websites/influencer-admin/index.html - Hosted on: Hostinger (
/influencers/admin/) - Features: Single/bulk invite sending, splash screen approval/rejection
- Auth: None (admin-only URL)
2. Influencer Portal
- URL:
https://hypnoelp.com/influencers/ - Source:
websites/influencer-portal/index.html - Hosted on: Hostinger (
/influencers/) - Auth: Supabase email/password (set up via invite link)
- Features: View profile, referral code, upload splash screen, check approval status
3. Supabase Edge Functions
| Function | Purpose |
|---|---|
create-influencer |
Creates influencer record + auth user + sends invite email via Resend |
update-splash-screen |
Uploads image to storage, sets status to “pending” |
approve-splash-screen |
Approves/rejects, generates base64 HTML on approval |
get-splash-screen |
Returns ready-to-display HTML for app (called by Jaz’s code) |
4. Referral Code Page
- Users visit
hypnoelp.com/share?code=CODE, enter email to link referral - Proxy (
proxy.pyon port 8013) handles CORS - Calls backend edge function to log the referral
Database
Supabase project: Influencer Portal (foxuipkuotwhitlxssyc)
| Table | Purpose |
|---|---|
influencers |
Partner profiles: name, email, code, splash screen URL/status/HTML, auth_user_id |
groups |
7 content categories for influencer classification |
influencer_groups |
Junction table linking influencers to groups |
referrals |
Tracks which users signed up via which referral code |
Key Fields on influencers
code— unique referral codeauth_user_id— linked to Supabaseauth.userssplash_screen_url— uploaded image URLsplash_screen_status— pending / approved / rejectedsplash_screen_rejected_reason— reason text if rejectedsplash_screen_html— generated HTML with embedded base64 image (created on approval)
Splash Screen Flow
- Influencer uploads image via portal (auto-compressed to ~100KB)
- Status set to “Pending Approval”
- Admin sees it in “Splash Screen Approvals” tab
- Approve: Image fetched, converted to base64, HTML generated and stored
- Reject: Status set to “Rejected” with reason, influencer can re-upload
- App calls
GET /functions/v1/get-splash-screen?code=CODEto display
Email Configuration
- Provider: Resend
- From:
HypnoELP Partners <marketing@hypnoelp.com> - Reply-to:
marketing@omelasai.com - DNS: Resend SMTP records on GoDaddy for
hypnoelp.com
RLS Policies
- Influencers can only read their own record via
auth_user_id = auth.uid() - Supabase Site URL must be set to
https://hypnoelp.com/influencers/for password reset links
Status
Fully deployed and working. Splash screen approval flow complete. Email auto-reply handled by n8n workflow (see n8n-workflows docs). Pending: app integration for displaying splash screens to referred users, production email switch to info@omelasai.com.