π¨ D β Claim-your-business email blast
Emails every approved directory listing with a personalized magic link to claim a vendor account. Pre-creates a pending vendor + generates a one-time claim token per business. Skips any that already have a vendor account.
π€ B β Facebook post β event extractor
Paste a Facebook post URL (or the raw post text) and Claude extracts the event details. Review + approve; then it goes into your editorial queue.
π₯ F β Bulk import known businesses
One business per line: Name | Email | Town | Categories β comma-separated categories. Creates a pending-claim vendor for each + emails them a magic link. Skips duplicates.
Name | Email | Town | Categories
π± G β PWA push notifications
Every tourist with the IH app on their home screen sees a soft banner inviting them to enable push. At ~7 AM DR, right after the daily newsletter emails go out, a native push fires automatically (translated per-locale). Use the panel below to send a one-off broadcast (new event alert, weather warning, etc.).
E β Referral codes
Every approved vendor now auto-gets a 6-char referral code when they visit /api/concierge/vendor/referral. Share URL: islandhappenings.net/vendor?ref=XXXXXX. Referred signups track to the referrer via the referred_by column on vendors. Ready to extend with reward logic whenever you want.
A β Public event submission
Live at islandhappenings.net/submit-event. Anyone can post without logging in β rate-limited to 3 per hour per IP. Lands in your Events admin queue for review.
C β Eventbrite integration
Running daily via scripts/daily-factuals.js at 8:15 AM DR. When Eventbrite returns events in DR, they're added to the daily guide's AI prompt automatically. (Ready to extend with direct pending-event creation if usage patterns justify it.)