# Remindlo — Full Documentation > UK automated SMS and email reminder platform for service businesses. Helps garages, dental practices, beauty salons, vets, HVAC engineers, and other recurring-service trades recover lost customers through automated reminders. Starts at £19/month. UK-focused: MOT integration, British English, GBP, GDPR-compliant. **Website**: https://www.remindlo.co.uk **REST API**: https://api.remindlo.co.uk/ **MCP Server**: https://mcp.remindlo.co.uk (for Claude AI integration) **Location**: United Kingdom **Languages**: British English **Currency**: GBP (+ EUR, USD, and 30+ other currencies, so customers can pay with their local currency at checkout) **Launched**: 2025 **Traction**: 200+ service businesses using Remindlo worldwide; thousands of automated reminders sent since launch. ## What Problem Does Remindlo Solve? - **Customer Retention**: Businesses lose 20–40% of customers who forget to return for recurring services - **Appointment No-Shows**: Reduce no-shows by 60% with automated reminders - **Manual Follow-ups**: Eliminate time-consuming manual reminder calls and messages - **Revenue Recovery**: Recover thousands of pounds annually in lost revenue from forgotten appointments ## Target Market & Industries ### Geographic Focus - **Primary Market**: United Kingdom - **Time Zones**: British (Europe/London) - **Localisation**: British English spelling and formatting - **Currency**: GBP (£) - **Compliance**: UK GDPR-compliant marketing consent tracking ### Target Industries (15+ Verticals) 1. **Automotive Services** — MOT testing reminders, seasonal tyre changes (winter/summer), oil changes and service intervals, vehicle inspection due dates 2. **Dental Practices** — 6-month checkup reminders, hygienist appointment recalls, treatment follow-ups 3. **Beauty & Hair Salons** — haircut appointment reminders, nail salon visits, spa treatment bookings 4. **Veterinary Clinics** — pet vaccination reminders, annual checkup recalls, medication refill alerts 5. **HVAC Services** — boiler service reminders, air conditioning maintenance, seasonal equipment checks 6. **Property Management** — rental inspection reminders, maintenance appointment scheduling, lease renewal notifications 7. **Medical Practices** — annual health checkups, prescription renewal reminders, follow-up appointment scheduling 8. **Gyms & Fitness** — membership renewal reminders, personal training session bookings, class reservation confirmations 9. **Opticians** — eye test reminders (2-year intervals), contact lens reorder notifications, frame adjustment appointments 10. **Pet Grooming** — regular grooming appointments, seasonal coat maintenance Plus: plumbing, electrical services, cleaning services, lawn care, and more. Any service that relies on recurrent services could use the product. ## Key Features ### Core Functionality - **One-Time SMS**: send individual messages to any contact directly from the Messages screen — no campaign needed (paid plans only) - **Two-Way SMS**: where messages are sent from a phone number (US and Canada), customers can reply and their replies appear in the conversation thread. In the UK and EU messages are sent from the alphanumeric sender name "Remindlo", which cannot receive replies — businesses there can still send manual one-to-one messages, but customers cannot text back (paid plans only) - **Automated SMS Reminders**: send text messages about upcoming services via campaigns - **Email Campaigns**: professional email reminders - **Template System**: customisable message templates with variables (`{{first_name}}`, `{{last_name}}`, `{{email}}`, `{{phone}}`, `{{note}}`, `{{next_due_at_date}}`, `{{business_name}}`, `{{business_phone}}`, `{{business_address}}`, `{{business_booking_url}}`) - **Campaign Types**: recurring reminders (based on service intervals), one-time promotional campaigns, anniversary/birthday messages - **Quiet Hours**: respects time zones, no messages 9 pm–8 am - **Multi-Language**: ready English templates and option to create new ones in any language ### Contact Management - **CSV Import**: bulk contact upload with column mapping and deduplication - **Image-to-Contacts (AI-Powered)**: upload photos of paper diaries, appointment books, or handwritten notes — AI extracts customer details (names, phone numbers, dates, notes) and creates contacts automatically; supports multiple contacts per image - **Tags & Segmentation**: filter contacts by tags, dates, custom criteria - **Consent Management**: GDPR-compliant opt-in/opt-out tracking - **Next Due Date**: track when customers need their next service - **Recurrent Contacts**: mark contacts as recurring services with a fixed interval (e.g. every 12 months for a boiler service, every 6 months for pest control); `next_due_at` automatically advances by the interval after each service date passes — no manual updates needed - **Calendar to Customer List (Calendar-to-CRM)**: a connected Google Calendar or Universal Calendar (ICS) feed turns every booking into a contact automatically — no data entry. Returning customers are matched by phone number (falling back to email), so multiple bookings by the same person stay as a single customer record instead of creating duplicates. Every occurrence is kept as its own appointment, so each customer carries a full history of past and upcoming visits — turning your calendar into a lightweight CRM you can work from. Feature page: https://www.remindlo.co.uk/features/calendar-to-crm ### Image-to-Contacts Feature Digitise your paper records instantly using AI-powered image recognition. **Supported Sources**: - Paper appointment diaries and day planners - Handwritten customer lists and notes - Business cards - Printed appointment schedules - Any image with customer information (names, phones, dates) **How It Works**: 1. Upload a photo or scan of your paper records 2. AI analyses the image and extracts customer data 3. Review extracted contacts before saving 4. Contacts are created with names, phone numbers, dates, and notes 5. Optionally auto-enrol new contacts into campaigns **Key Benefits**: convert years of paper records in minutes, eliminate manual data entry errors, process multiple contacts from a single image, works with handwritten and printed text. ### Integrations **Google Calendar** (OAuth 2.0): - Automatic appointment import - Incremental sync using sync tokens (efficient, API-quota friendly) - Extract customer details from calendar events - Appointment cancellation handling **Universal Calendar (ICS)**: - Paste a public ICS publish URL — works with any calendar that supports the iCalendar (RFC 5545) standard - Polls hourly; conditional GET (ETag/Last-Modified) plus content hashing skip re-processing when the feed is unchanged - Works with: Outlook on the web, Microsoft 365, Apple iCloud, Fastmail, Yahoo, Nextcloud, Zoho Mail, Proton Calendar, IONOS, GoDaddy, Krystal, FastHosts, 123-Reg, Hostinger, and any cPanel / Roundcube / Open-Xchange webmail - Phone numbers extracted from event description, title, or location (E.164 preferred; UK local numbers auto-prefixed with +44) - Deletion detection by diffing the parsed UID set against existing sync state — closes the parity gap with Google's sync tokens - Built for reactivation reminders (24 h or longer); polling lag means same-hour confirmations are not guaranteed - Setup guide: https://www.remindlo.co.uk/help/calendar-sms-reminders **Stripe**: - Subscription billing - One-time SMS pack purchases - Customer portal for self-service - Adaptive Pricing: customers outside the UK can pay in their local currency at checkout (30+ currencies supported, powered by Stripe) **MOT/DVLA API** (UK-specific): - Vehicle registration lookup - MOT due date retrieval - Test history access **REST API** (api.remindlo.co.uk): - Full contact management (create, update, list, get) - Campaign listing and enrolment - API key authentication (`x-api-key` header) - E.164 phone format support (international) - Auto-enrolment to campaigns on contact creation - Rate-limited, per-tenant API keys - Outgoing webhooks: real-time HTTP notifications for data changes **Outgoing Webhooks**: - Receive real-time HTTP POST notifications when contacts, campaigns, or messages change - Events: `contact.created`, `contact.updated`, `contact.deleted`, `campaign.created`, `campaign.enrolled`, `message.sent`, `message.failed` - HMAC-SHA256 signed payloads via `X-Remindlo-Signature` header - Automatic retries with exponential backoff (up to 8 attempts) - Manage via Dashboard or REST API - Supports Zapier, Make, n8n, and custom integrations **Zapier** (8,000+ App Integrations): - Connect Remindlo with any CRM, booking system, form builder, or business app - Triggers and actions: create contacts, send SMS reminders, enrol in campaigns - Popular workflows: Calendly booking → SMS reminder, HubSpot deal → follow-up campaign, Typeform submission → appointment reminder, Google Sheets row → contact creation - No-code setup via Zapier's visual workflow builder - Embedded Zap builder available inside the Remindlo dashboard - Browse integrations: https://www.remindlo.co.uk/integrations/zapier **Claude AI Integration** (MCP Server): - Model Context Protocol (MCP) support - Remote server at mcp.remindlo.co.uk - OAuth 2.0 authentication for Claude.ai - Natural language contact management - Available tools: `list_campaigns`, `upsert_contact`, `get_contact`, `list_contacts`, `send_message` - Works with Claude.ai (web), Claude Desktop, Claude Code, and other AI assistants supporting MCP Protocol ### Message Delivery - **SMS Segments**: automatic calculation (GSM-7: 160/153 chars, Unicode: 70/67 chars) - **Delivery Tracking**: status monitoring (queued → sent → delivered/failed) - **Cost Tracking**: per-message cost calculation (£0.18 per segment overage) - **Provider Agnostic**: SMS provider is pre-configured — customers start using the product right away, no technical setup needed - **Quota Management**: track usage against subscription limits ### Analytics & Monitoring - Campaign performance: sent, delivered, failed message counts - SMS usage tracking: per billing period monitoring - Contact growth: historical contact metrics - Delivery rates: channel-specific success rates - Monthly reports (paid plans): table of contacts count and messages sent per month, available at Dashboard -> Reports ## Free Tools (Lead Generation) ### SMS Generator (/sms-generator) - **Purpose**: AI-assisted SMS template creation - Industry-specific suggestions, character counter with segment calculation, GSM-7 vs Unicode detection, export to clipboard or email - **SEO Value**: "SMS template generator", "business SMS examples" ### No-Show Cost Calculator (/no-show-calculator) - **Purpose**: calculate revenue loss from appointment no-shows - Input: average appointment value, no-show rate, appointments per month - Output: annual revenue loss, potential recovery with Remindlo, ROI charts and projections - **SEO Value**: "appointment no-show calculator", "missed appointment cost" ### MOT Due Checker (/mot-due-checker) - **Purpose**: UK vehicle MOT testing due date lookup - Input: vehicle registration number (UK format) - Output: MOT due date, test history, pass/fail records - Integration: DVLA MOT History API - **SEO Value**: "MOT due date checker", "when is my MOT due", "vehicle testing UK" ## Pricing & Plans (GBP) ### Free Plan - **Price**: £0/month - **Included**: 10 SMS per month, limited email sending - **Features**: all industries, automated campaigns, message templates, CSV contact import, AI contact scanner (Image-to-Contacts), Google Calendar and Universal Calendar (ICS) integrations, email support - **Not included**: manual one-to-one messages from the Messages screen, sending SMS through the REST API (`POST /v1/messages`) or the MCP `send_message` tool, monthly reports - **Best For**: testing the platform, very small businesses ### Starter Plan - **Monthly**: £19/month (75 SMS included) - **Yearly**: £199/year (900 SMS included, 17% savings) - **Features**: everything in Free, plus unlimited emails, manual one-to-one messages, SMS sending via the REST API and MCP, basic analytics and monthly reports, email support ### Standard Plan - **Monthly**: £49/month (250 SMS included) - **Yearly**: £499/year (3,000 SMS included, 15% savings) - **Features**: everything in Starter, plus advanced analytics and priority support Note for API and MCP users: sending messages requires any paid plan — Starter is enough. Contact and campaign endpoints (`upsert_contact`, `get_contact`, `list_contacts`, `list_campaigns`) work on every plan, including Free. ### Additional SMS Packs (One-Time Purchases) - **300 SMS Pack**: £49 (£0.16 per SMS) - **1,500 SMS Pack**: £219 (£0.15 per SMS) ### Overage Pricing - **Rate**: £0.18 per SMS beyond included quota (billed as a 50 SMS pack for £9; bigger packs cost less per SMS) - **Billing**: auto-charged at end of billing period ### Payment Methods - **Monthly plans**: card only. - **Annual plans**: an annual plan priced in GBP also offers **Bacs Direct Debit** (UK bank accounts) at checkout, alongside card. Customers paying in a converted local currency see card and wallets only. - **SMS packs**: card or Direct Debit. A pack paid by Direct Debit is credited once the payment clears (a few working days); card payments are credited instantly. - Bank debits take a few working days to settle, which is why they are offered on annual rather than monthly billing. Subscriptions are activated as soon as checkout completes, so a clearing payment never delays reminders. ### Local Currency Checkout All prices are listed in GBP. Customers outside the UK automatically see prices converted to their local currency at checkout, powered by Stripe Adaptive Pricing. Over 30 currencies are supported, including EUR, USD, PLN, SEK, CHF, and many more. ## Technology Stack ### Frontend - React 18.3 + TypeScript 5.8 - Vite 5.4 - Tailwind CSS 3.4 with custom design system - shadcn/ui (Radix UI primitives) - React Router DOM 6.30 - TanStack React Query 5.83 - React Hook Form 7.61 + Zod 3.25 validation - date-fns 3.6 with British English locale (enGB) - Tiptap 3.x with table, image, link extensions - Lucide React 0.462 - Recharts 2.15 ### Backend - Database: PostgreSQL (via Supabase) - Serverless Functions: Deno Edge Functions - Authentication: Supabase Auth (email/password + Google OAuth) - Real-time: Supabase Realtime subscriptions - Row-Level Security: multi-tenant data isolation - Migrations: version-controlled SQL migrations ### External Services - Payments: Stripe (subscriptions + one-time purchases) - SMS Provider: pre-configured - Email Service: transactional emails - Calendar: Google Calendar API (OAuth 2.0) - Vehicle Data: UK DVLA MOT API - Analytics: Google Analytics ### Hosting & Deployment - Backend: Supabase (managed) - CI/CD: GitHub Actions - Build Process: pre-rendering with Puppeteer for SEO - Deployment Triggers: push to main, manual dispatch, article publish webhooks ## Use Cases & Examples Each of the six things Remindlo automates has its own page, indexed at https://www.remindlo.co.uk/for : reducing no-shows, recurring reminders, periodic reminders, post-visit thank you notes, review requests, and reactivation. Worked examples follow. ### Automotive Garage **Business**: MOT & Service Centre in Manchester. **Challenge**: 35% of customers don't return for annual MOT testing. **Solution**: import customer database with last MOT date, set up recurring campaign "MOT due in 30 days", send SMS: "Hi {{first_name}}, your vehicle MOT is due on {{next_due_at_date}}. Book now at {{business_name}}: {{phone}}". **Result**: 28% increase in returning customers, £15,000 additional annual revenue. ### Dental Practice **Business**: Family dental practice in London. **Challenge**: patients forget 6-month checkup appointments. **Solution**: Google Calendar integration imports all appointments, automatic 1-week reminder SMS before appointment, quarterly recall campaign for overdue patients. **Result**: 60% reduction in no-shows, 22% increase in recall bookings. ### Beauty Salon **Business**: Hair salon in Birmingham. **Challenge**: irregular customer visits, no systematic follow-up. **Solution**: tag customers by service type, send "We miss you!" campaign to customers who haven't visited in 8 weeks, birthday discount messages. **Result**: 31% increase in repeat bookings, higher customer lifetime value. ### Image-to-Contacts (Paper Diary Digitisation) **Business**: Family plumber in Leeds with 15 years of paper records. **Challenge**: thousands of customer appointments in paper diaries — no way to send reminders. **Solution**: photographed appointment diary pages, used Image-to-Contacts to extract customer data, AI recognised handwritten names, phone numbers, and service dates, reviewed and imported 2,400 contacts over a weekend, set up "Annual boiler service reminder" campaign. **Result**: converted 15 years of paper records in 2 days; first campaign brought back 180 customers — £27,000 in recovered revenue. ## Recent Features (2026) ### Universal Calendar (ICS) Integration (April 2026) Connect any calendar that publishes a public ICS URL. One technical integration covers Outlook, Microsoft 365, Apple iCloud, Fastmail, Yahoo, Nextcloud, Zoho Mail, Proton Calendar, plus the dozens of webmail/hosting calendars that bundle with email accounts (IONOS, GoDaddy, Krystal, FastHosts, 123-Reg, Hostinger, and any cPanel/Roundcube/Open-Xchange installation). Designed as the catch-all for businesses outside the Google ecosystem — roughly 11% of UK SMB calendars by usage. **How it works**: paste the calendar's public ICS publish URL into Dashboard → Integrations → Universal Calendar (ICS). Remindlo polls the feed hourly, parses VEVENT records via an RFC 5545 parser, extracts phone numbers from event description / title / location, and feeds the same campaign pipeline as the Google Calendar integration. New events become contacts; cancelled or removed events trigger reminder cleanup. **Use cases**: small businesses on Microsoft 365, Apple iCloud, Fastmail, Proton, or hosting-bundled webmail (very common with UK domain providers). Pillar guide with per-provider walkthroughs for finding the publish URL: https://www.remindlo.co.uk/help/calendar-sms-reminders **Trade-offs**: hourly polling cadence (vs the Google integration's 5-minute poll) means this is for reactivation reminders, not last-minute confirmations. Both integrations can run side-by-side — Remindlo keeps Google and ICS feeds separate per workspace. ### Monthly Reports (April 2026) View monthly activity summaries in Dashboard -> Reports (paid plans only). A simple table shows contacts count and messages sent for each month your account has been active. Free plan users see an upgrade prompt. Data is sourced from the monthly summary system that runs on the 1st of each month. ### Outgoing Webhooks (March 2026) Real-time HTTP notifications when contacts, campaigns, or messages change. HMAC-SHA256 signed payloads, automatic retries with exponential backoff (up to 8 attempts), and auto-disable for endpoints with consecutive failures. Manage via the Dashboard (create, edit, rotate secrets, view delivery logs, replay failed deliveries) or the REST API. Supports Zapier, Make, n8n, and custom integrations. Event types: `contact.created`, `contact.updated`, `contact.deleted`, `campaign.created`, `campaign.enrolled`, `message.sent`, `message.failed`. ### Zapier Integration (March 2026) Connect Remindlo with 8,000+ apps through Zapier. Automate contact creation, SMS reminders, and campaign enrolment from any CRM, booking system, form builder, or business app your service business already uses. No-code setup via Zapier's visual workflow builder, plus an embedded Zap builder inside the Remindlo dashboard. Popular workflows: Calendly booking → SMS reminder, HubSpot deal → follow-up campaign, Typeform submission → appointment reminder. Browse integrations: https://www.remindlo.co.uk/integrations/zapier ### One-Time Messaging (March 2026) Send individual SMS to any contact directly from the Messages screen — outside of campaigns. Select a contact via a searchable picker with pagination, or start a conversation from the Contacts table via the message icon. Where the sender is a phone number (US and Canada), inbound replies land in the same thread and can be answered in real time; in the UK and EU the alphanumeric "Remindlo" sender cannot receive replies, so the conversation is outbound only. Available on paid plans only (free plan users see an upgrade prompt). ### Recurrent Contacts (February 2026) Mark contacts as recurring services with a fixed service interval. - **Fields**: `is_recurrent` (boolean), `recurrent_interval_value` (integer 1–999), `recurrent_interval_unit` (days/months/years) - **How it works**: each visit is stored as a row in the appointments table. A daily background job creates the next cycle visit when the previous one passes (anchor + interval), tagged with `source='recurring_rule'`. `next_due_at` and `last_service_at` on the contact are derived from appointments and surface in API / MCP responses as ever — only the underlying mechanic changed. - **Cycle vs ad-hoc visits**: a customer can have ad-hoc visits between cycle visits (e.g. an unplanned service between annual MOTs) without shifting the cycle — the cron only anchors on `recurring_rule` visits. - **Supported in**: contact form UI (recurrence flag + interval), CSV import, REST API, MCP server, OCR calendar import - **Use cases**: annual boiler service, MOT reminders, 6-month dental check-ups, quarterly pest control, PAT testing, HVAC maintenance - **Background job**: runs daily at 01:00 UTC; for each recurrent contact without a future cycle visit, computes anchor + interval and inserts the next visit ### Public REST API (January 2026) Full-featured REST API for developers and integrations. Base URL: `api.remindlo.co.uk`. Endpoints: contact CRUD, campaign listing, auto-enrolment. Auth: API key. Integrate Remindlo with any system (CRM, booking software, Zapier). ### Claude AI Integration via MCP (January 2026) Model Context Protocol server for AI assistants. Server URL: `mcp.remindlo.co.uk`. OAuth flow via Claude.ai custom connectors. Tools: `list_campaigns`, `upsert_contact`, `get_contact`, `list_contacts`. Manage contacts through natural conversation with Claude. ### Google Calendar Incremental Sync Replaced full calendar sync with incremental sync using Google's sync tokens. 90% faster, reduced API usage, better scalability. ### Appointment Cancellation Handling Automatic cleanup when appointments are cancelled in Google Calendar: clears contact's next due date, deletes pending reminders, updates appointment status. Prevents sending reminders for cancelled appointments. ### GDPR Compliance Updates Updated labels ("Marketing consent" → "Consent to receive messages"), simplified language, audit trail for consent changes. ## Developer Information ### REST API **Base URL**: `https://api.remindlo.co.uk/v1` **Auth**: API key in `x-api-key` header ``` x-api-key: sk_live_your_key_here ``` **Endpoints**: | Method | Endpoint | Description | |--------|----------|-------------| | GET | `/v1/campaigns` | List all SMS campaigns | | POST | `/v1/contacts` | Create or update contact (upsert) | | GET | `/v1/contacts` | List contacts with filtering | | GET | `/v1/contacts?phone=+44...` | Get contact by phone | | GET | `/v1/contacts/:id` | Get contact by ID | | POST | `/v1/campaigns-enroll` | Enroll a contact in a campaign | | POST | `/v1/messages` | Send one-time SMS to a contact (paid plans) | | GET | `/v1/webhooks` | List all webhook endpoints | | POST | `/v1/webhooks` | Create a webhook endpoint (returns signing secret) | | POST | `/v1/webhooks/delete` | Delete a webhook endpoint | **Contact Upsert Example**: ```json POST /v1/contacts { "phone": "+447912345678", "first_name": "John", "last_name": "Smith", "email": "john@example.com", "marketing_consent": true, "next_due_at": "2025-03-15", "campaign_ids": ["uuid-of-campaign"], "is_recurrent": true, "recurrent_interval_value": 12, "recurrent_interval_unit": "months" } ``` **Response Format**: ```json { "success": true, "contact_id": "uuid", "action": "created", "contact": { ... }, "enrollments": [ { "campaign_id": "uuid", "status": "enrolled" } ] } ``` **Campaigns Enroll Example**: ```json POST /v1/campaigns-enroll { "campaign_id": "campaign-uuid", "customer_id": "contact-uuid" } ``` Note: `customer_id` is a legacy field name — it refers to a contact UUID. Newer endpoints use `contact_id`. **Request Body**: | Field | Type | Required | Description | |-------|------|----------|-------------| | campaign_id | string | Yes | UUID of the campaign | | customer_id | string | Yes | UUID of the contact to enroll | **Response**: ```json { "enrollment_id": "uuid", "status": "enrolled" } ``` **Possible status values**: `enrolled` (success), `already_enrolled` (contact was already in this campaign), `skipped` (e.g., contact has no phone, or campaign is not active). **Error Codes**: `INVALID_PHONE_FORMAT` · `MISSING_IDENTIFIER` · `INVALID_API_KEY` · `CONTACT_NOT_FOUND` · `MISSING_PHONE_NUMBER` · `PLAN_REQUIRED` · `SMS_LIMIT_EXCEEDED` **Send One-Time SMS Example**: ```json POST /v1/messages { "contact_id": "contact-uuid", "body": "Hi John, just a reminder about your appointment tomorrow at 2pm." } ``` **Response (202 Accepted)**: ```json { "success": true, "message_id": "uuid", "status": "queued", "contact_id": "contact-uuid", "parts": 1, "channel": "sms" } ``` **Notes**: Requires a paid plan (returns `PLAN_REQUIRED` on free plan). Contact must have a phone number. Message is queued and sent asynchronously. SMS segments are calculated automatically (GSM-7 or Unicode). SMS usage is deducted from the tenant's quota. ### MCP Server (mcp.remindlo.co.uk) Model Context Protocol allows AI assistants like Claude to use external tools directly. Users manage Remindlo contacts through natural conversation. **Connection via Claude.ai (Web — Recommended)**: 1. Go to Claude.ai → Settings → Connectors 2. Add custom connector: `https://mcp.remindlo.co.uk` 3. Authorise via OAuth (login to Remindlo) 4. Chat with Claude to manage contacts — no API keys or config files needed **Connection via Claude Desktop**: - Requires API key from Dashboard → Integrations - Edit `claude_desktop_config.json` - Uses `npx @remindlo/mcp-server` **Available MCP Tools**: - `list_campaigns` — get all SMS campaigns - `upsert_contact` — add or update a contact - `get_contact` — find contact by ID, phone, or email - `list_contacts` — search and filter contacts; supports `is_recurrent` filter to list all recurring service contacts - `send_message` — send a one-time SMS to a contact (paid plans only; requires `contact_id` and `body`, max 1600 chars) **Example MCP Conversation**: ``` User: "Add John Smith, phone +48607123456, to the Birthday campaign" Claude: [calls list_campaigns → finds Birthday campaign] Claude: [calls upsert_contact with phone and campaign_ids] Claude: "Done! John Smith has been added and enrolled in Birthday campaign." ``` ### Agent Skills Discovery Remindlo publishes an **Agent Skill** — a structured instruction file that teaches AI agents (Claude, ChatGPT and any other agent that supports the Anthropic Skills format) how to use the Remindlo MCP server and REST API. The Skill is discoverable via the Cloudflare Agent Skills Discovery RFC v0.2.0, so compliant tools (Claude.ai connectors, `isitagentready.com`, custom-built agents) find it automatically without manual configuration. **Positioning vs Claude for Small Business**: Anthropic launched Claude for Small Business in May 2026 with a packaged set of workflows and skills covering payroll, books (QuickBooks), business performance, campaign management, invoice chasing, and cash-flow forecasting via QuickBooks, PayPal, HubSpot, Canva, DocuSign, Google Workspace, and Microsoft 365. That pack does not cover customer messaging — appointment reminders, no-show recovery, recurring service reminders, customer reactivation, or post-visit follow-ups. Remindlo's Agent Skill fills that gap. The two are complementary, not overlapping, and both follow the same open Agent Skills standard so any agent can use them side by side. Remindlo is not affiliated with or part of Anthropic's pack. Help article: **Discovery manifest**: `https://www.remindlo.co.uk/.well-known/agent-skills/index.json` The manifest conforms to schema `https://schemas.agentskills.io/discovery/0.2.0/schema.json` and lists each available Skill with a SHA-256 digest so agents can verify they loaded the correct content. **Skill artefact**: `https://www.remindlo.co.uk/.well-known/agent-skills/remindlo-sms-reminders/SKILL.md` The Skill (`remindlo-sms-reminders`) is an Anthropic-format `SKILL.md` covering: - Decision tree for choosing between `list_campaigns`, `upsert_contact`, `get_contact`, `list_contacts`, and `send_message`. - E.164 phone formatting across the UK, EU, US, Canada, Australia, and other regions — with a per-country conversion table. - Typical recurrent reminder intervals (annual vehicle inspections including UK MOT, 6-month dental check-ups, 12-month boiler/HVAC service, quarterly pest control, 5-year electrical inspections). - Consent and legal-basis guidance across UK GDPR/PECR, EU GDPR, TCPA, CASL, and similar regimes. - Locale handling (`en-GB`, `pl`) with matching date formats and template copy conventions. - Starter prompts users can copy when first connecting Remindlo to Claude or another agent. **Why it matters for agents**: The MCP server provides the *verbs* (the API calls); the Skill provides the *playbook* (when to use each call, what arguments to pass, what to ask the user). An agent that loads the Skill makes far fewer mistakes — correct E.164 formatting, correct campaign enrolment, sensible defaults for recurrent intervals, and proper consent handling — without the user having to spell every detail out in the prompt. **How agents pick it up**: 1. Agent fetches the discovery manifest (`/.well-known/agent-skills/index.json`). 2. Agent reads each entry, verifies the `digest`, and downloads the `SKILL.md` referenced by `url`. 3. Agent loads the Skill into its context whenever a request matches the Skill's `description` (the description includes both TRIGGER and SKIP cues). For Claude.ai users, no configuration is needed — adding the `https://mcp.remindlo.co.uk` connector is enough; Claude discovers and loads the Skill automatically. ### Outgoing Webhooks Receive real-time HTTP POST notifications when data changes in your Remindlo account. Create webhook endpoints via the REST API or the Dashboard. **Event Types**: `contact.created`, `contact.updated`, `contact.deleted`, `campaign.created`, `campaign.enrolled`, `message.sent`, `message.failed` **Payload Envelope**: ```json { "id": "event-uuid", "type": "contact.created", "created_at": "2026-03-25T10:30:00Z", "api_version": "2026-03-25", "data": { ... } } ``` **Signature Verification**: each delivery includes an `X-Remindlo-Signature` header (`t=,v1=`). Compute HMAC-SHA256 of `{timestamp}.{raw_body}` using your signing secret and compare with the `v1` value. **Retry Behaviour**: failed deliveries retry automatically with exponential backoff - 1 min, 5 min, 30 min, 2 hours, 6 hours, 12 hours, 24 hours (up to 8 attempts). Endpoints with 5+ consecutive permanent failures are auto-disabled. **API Endpoints**: | Method | Endpoint | Description | |--------|----------|-------------| | GET | `/v1/webhooks` | List all webhook endpoints | | POST | `/v1/webhooks` | Create endpoint (returns signing secret - shown once) | | POST | `/v1/webhooks/delete` | Delete endpoint and delivery history | **Create Webhook Example**: ```json POST /v1/webhooks { "name": "My CRM sync", "target_url": "https://example.com/webhook", "event_types": ["contact.created", "contact.updated", "contact.deleted"] } ``` **Response**: ```json { "success": true, "endpoint": { "id": "endpoint-uuid", "name": "My CRM sync", "target_url": "https://example.com/webhook", "source": "manual", "status": "active", "event_types": ["contact.created", "contact.updated", "contact.deleted"] }, "signing_secret": "whsec_a1b2c3d4e5f6..." } ``` **Dashboard**: manage endpoints, view delivery logs, replay failed deliveries, rotate signing secrets at https://www.remindlo.co.uk/dashboard/webhooks ### Internal Webhooks - Appointment created/updated/cancelled - Stripe subscription events - Message delivery status updates ### Edge Functions (Deno) - `send-sms` — SMS delivery handler - `sync-calendar-polling` — Google Calendar event polling (5-min cron) - `sync-ics-polling` — Universal Calendar (ICS) feed polling (hourly cron) - `ics-feed-test` / `ics-feed-upsert` / `ics-feed-delete` — Universal Calendar feed management (Dashboard endpoints) - `stripe-webhook` — payment event processing - `monitor-sms-usage` — daily quota checks - `v1-appointments-upsert` — appointment webhook handler ## Security & Compliance ### Multi-Tenancy - All data scoped by `tenant_id` - Row-Level Security (PostgreSQL RLS policies) - Role-Based Access: OWNER, ADMIN, USER roles ### Data Protection - GDPR: consent tracking, data export, right to deletion - PECR: opt-in for marketing messages - Encryption at rest, TLS in transit - Encrypted access tokens (Google OAuth, API keys) ### Authentication - Supabase Auth with secure password hashing - Google OAuth SSO - JWT tokens with auto-refresh - 2FA: planned for future release ## Database Schema Highlights - **Multi-tenant**: all tables scoped by `tenant_id` - **Contacts**: first/last name, email, phone (E.164), tags, custom_fields (JSONB), consent, `next_due_at` (derived), `last_service_at` (derived), `is_recurrent` (boolean), `recurrent_interval_value` (integer), `recurrent_interval_unit` (days/months/years) - **Appointments**: per-visit row with `start_at`, `end_at`, `status` (scheduled/confirmed/cancelled), `source` (manual/api/form/recurring_rule), optional title, location, notes. Contact's `next_due_at` and `last_service_at` are derived from this table via a DB trigger; for API consumers, sending `next_due_at` to `POST /v1/contacts` is shorthand that materialises a scheduled appointment row. - **Campaigns**: type (recurring/one_time/anniversary), channel, schedule, segment_rules - **Messages**: content, parts (segments), status, cost, delivery tracking - **Templates**: language, channel, variables, preview support ## SMS Segment Calculation ``` GSM-7 (Standard English): Single segment: 160 characters Multi-segment: 153 characters each Unicode (Polish, Emojis, etc.): Single segment: 70 characters Multi-segment: 67 characters each ``` ## Template Variables - `{{first_name}}` — contact's first name - `{{last_name}}` — contact's last name - `{{email}}` — contact's email address - `{{phone}}` — contact's phone number - `{{note}}` — customer note - `{{next_due_at_date}}` — next service due date - `{{business_name}}` — tenant's business name - `{{business_phone}}` — business phone number - `{{business_address}}` — business address - `{{business_booking_url}}` — business booking URL ## Campaign Processing - **Cron Schedule**: hourly - **Quiet Hours**: 9 pm–8 am in tenant's time zone - **Segmentation**: filter by tags, custom fields, date ranges - **Quota Checking**: validates SMS allowance before sending ## Browser & Platform Support Modern browsers: Chrome, Firefox, Safari, Edge (latest 2 versions). ES2020+. Responsive design, works on all devices. No IE11 support. ## Roadmap & Planned Features - Voice channel support (automated phone calls) - Advanced segmentation (RFM analysis) - A/B testing for campaigns - Mobile app (React Native) - WhatsApp Business API integration - Multi-user team management - White-label licensing for agencies ## Common Questions **Q: What SMS providers are supported?** A: Remindlo works out of the box — we use our shared SMS provider account. No configuration needed. Just sign up and start sending reminders. **Q: Can I import existing customer data?** A: Yes — CSV import with column mapping and deduplication. You can also upload photos of paper diaries or appointment books; AI extracts customer details automatically. **Q: How does the Image-to-Contacts feature work?** A: Upload a photo of your paper diary, appointment book, or handwritten notes. Our AI analyses the image, extracts customer names, phone numbers, dates, and notes, then creates contacts. You review before saving. **Q: How are SMS segments calculated?** A: GSM-7 encoding: 160 chars (1st segment), 153 chars (subsequent). Unicode: 70/67 chars. Automatic detection. **Q: Is there a contract or minimum term?** A: No — monthly plans are cancel-anytime. Annual plans save 15–17%. **Q: Can I try before buying?** A: Yes — free plan with 10 SMS/month, no credit card required. **Q: What happens if I exceed my SMS quota?** A: Overage is billed as a 50 SMS top-up pack (£9, i.e. £0.18/SMS), or you can purchase bigger SMS packs in advance at a lower unit price. **Q: Is my data secure and GDPR compliant?** A: Yes — multi-tenant isolation, RLS policies, marketing consent tracking, data export/deletion. **Q: Can I use my own domain for emails?** A: We prepared industry standard templates and send them through our top infrastructure prviders along with using our own domain reputation, so you are sure it reaches out to the customer. Your email reminder won't land in spam. **Q: Is there an API for developers?** A: Yes — full REST API at api.remindlo.co.uk. Create/update contacts, list campaigns, auto-enrol contacts. API key authentication. **Q: Can I use Remindlo with Claude AI?** A: Yes! Add Remindlo as a custom connector in Claude.ai (Settings → Connectors → Add custom connector → enter `https://mcp.remindlo.co.uk`). Then manage contacts through natural conversation. **Q: What can Claude do with Remindlo?** A: List campaigns, add/update contacts, search contacts, enrol contacts in campaigns — all through chat. Example: "Add John Smith +447912345678 to Birthday campaign". **Q: Do I need to code to use the Claude integration?** A: No — Claude.ai web users just add a custom connector URL. No coding, no API keys, no config files. OAuth handles authentication automatically. **Q: My calendar is Outlook (or iCloud, Fastmail, Yahoo, Proton, etc.). Can I still use Remindlo?** A: Yes — use the Universal Calendar (ICS) integration. Paste your calendar's public ICS publish URL into Dashboard → Integrations and Remindlo polls it hourly for new and changed events. Works with Outlook on the web, Microsoft 365, Apple iCloud, Fastmail, Yahoo, Nextcloud, Zoho Mail, Proton Calendar, and most webmail bundled with hosting (IONOS, GoDaddy, Krystal, FastHosts, 123-Reg, Hostinger, plus any cPanel/Roundcube/Open-Xchange installation). Step-by-step guide for finding the URL on each provider: https://www.remindlo.co.uk/help/calendar-sms-reminders **Q: How do I find the ICS publish URL for my calendar?** A: Look for "Publish", "Subscribe", "Share", or "iCal feed" in your calendar's settings. The URL ends in `.ics` or contains `/dav/`. For Apple iCloud, replace the `webcal://` prefix with `https://` before pasting it into Remindlo. Per-provider walkthroughs: https://www.remindlo.co.uk/help/calendar-sms-reminders **Q: What are recurrent contacts?** A: Contacts with a fixed service interval — annual boiler service, 6-month dental check-up, quarterly pest control. Once marked as recurrent, Remindlo automatically schedules the next cycle visit after the previous one passes (visible on the Calendar grid). Ad-hoc visits between cycles (e.g. a tyre service between annual MOTs) don't shift the cycle. **Q: Which interval units are supported for recurrent contacts?** A: Days, months, and years. Interval value: 1–999. Examples: every 6 months (mid-year service), every 12 months (annual boiler), every 90 days (quarterly treatment). **Q: Can I import recurrent contacts via CSV?** A: Yes. The CSV import template includes `is_recurrent`, `recurrent_interval_value`, and `recurrent_interval_unit` columns. Set `is_recurrent` to `yes`, provide the interval value, and specify `days`, `months`, or `years`. ## Referral Programme Refer a fellow business owner to Remindlo — you both get a free month on your current plan. No limit on referrals: refer enough friends and use Remindlo for free, indefinitely. **How it works**: 1. Log in to Remindlo and go to Dashboard → Refer & Earn 2. Copy your personalised referral link or use one of three ready-made message templates (WhatsApp/Text, Email, Social Media) 3. Your friend signs up through your link and makes their first payment 4. You both receive an extra free month on your current plan **Terms**: bonus activates after the referred person's first successful payment. Both the referrer and the referred person receive their bonus at the same time. - [Referral Programme](https://www.remindlo.co.uk/referral) ## Optional - [Pricing](https://www.remindlo.co.uk/pricing) - [Blog](https://www.remindlo.co.uk/blog) - [Industries](https://www.remindlo.co.uk/#industries) - [Sign Up](https://www.remindlo.co.uk/register) - [Dashboard](https://www.remindlo.co.uk/dashboard) - [Help Centre](https://www.remindlo.co.uk/help) --- **Last Updated**: March 2026 **For Support**: https://www.remindlo.co.uk/help **REST API**: https://api.remindlo.co.uk **MCP Server**: https://mcp.remindlo.co.uk **API Docs**: https://www.remindlo.co.uk/help/sms-reminder-api **Claude Integration Guide**: https://www.remindlo.co.uk/help/mcp-server-claude-integration