{
 "name": "Runalio feature catalogue",
 "url": "https://runalio.com/catalog/",
 "updated": "see each package version",
 "how_to_use": "Start from the matching package: read its README, install base first, then the package. Verify downloads against sha256.",
 "packages": [
  {
   "id": "base",
   "name": "Website backend (base)",
   "category": "foundation",
   "version": "1.2.0",
   "summary": "The backend skeleton every other package plugs into: router, SQLite database, owner admin area, background jobs and an email helper. Node 22, no dependencies.",
   "requires": [],
   "settings": [
    {
     "name": "ADMIN_PASSWORD",
     "required": false,
     "secret": true,
     "description": "Optional standalone admin passphrase. Managed Runalio websites use portal team access."
    },
    {
     "name": "EMAIL_PROVIDER",
     "required": false,
     "secret": false,
     "description": "resend, postmark, sendgrid or mailgun, for automatic emails."
    },
    {
     "name": "EMAIL_API_KEY",
     "required": false,
     "secret": true,
     "description": "API key of that email provider."
    },
    {
     "name": "EMAIL_FROM",
     "required": false,
     "secret": false,
     "description": "Sender address on a domain verified with the email provider."
    },
    {
     "name": "MAILGUN_DOMAIN",
     "required": false,
     "secret": false,
     "description": "Mailgun sending domain (Mailgun only)."
    }
   ],
   "customer_needs": [
    "Open business admin from Settings in the Runalio portal. Standalone installs can set ADMIN_PASSWORD."
   ],
   "kind": "package",
   "readme": "https://runalio.com/catalog/base/README.md",
   "download": "https://runalio.com/catalog/releases/base/1.2.0.tar.gz",
   "sha256": "21882307727d1a8b0b415e5dd42ed70fa3fd9f5d53629782000decdb8b0b0652",
   "size": 21170,
   "files": [
    "README.md",
    "catalog.json",
    "server/data/README.txt",
    "server/features/.keep",
    "server/lib/admin.js",
    "server/lib/business.js",
    "server/lib/console.js",
    "server/lib/db.js",
    "server/lib/email.js",
    "server/lib/http.js",
    "server/lib/jobs.js",
    "server/lib/payments.js",
    "server/package.json",
    "server/runalio.json",
    "server/server.js"
   ]
  },
  {
   "id": "stripe-payments",
   "name": "Stripe payments, donations and subscriptions",
   "category": "payments",
   "version": "1.2.0",
   "summary": "Stripe Checkout for products, donations (with a progress bar) and recurring subscriptions. Cards, Apple Pay, Google Pay and Link appear automatically on Stripe's page. Webhook-verified ledger, refunds and admin list.",
   "requires": [
    "base"
   ],
   "settings": [
    {
     "name": "STRIPE_SECRET_KEY",
     "required": true,
     "secret": true,
     "description": "Stripe secret key (sk_test_... first, then sk_live_...)."
    },
    {
     "name": "STRIPE_WEBHOOK_SECRET",
     "required": true,
     "secret": true,
     "description": "Signing secret (whsec_...) of the webhook endpoint created in Stripe."
    },
    {
     "name": "STRIPE_PUBLISHABLE_KEY",
     "required": false,
     "secret": false,
     "description": "Only for custom Stripe.js integrations; Checkout does not need it."
    },
    {
     "name": "PAYMENT_RETURN_PATH",
     "required": false,
     "secret": false,
     "description": "Page visitors return to after paying, relative to the website, e.g. donate.html. Default: home page."
    }
   ],
   "customer_needs": [
    "A Stripe account (stripe.com) with the business details completed for live payments.",
    "Enter STRIPE_SECRET_KEY (test key first) in Settings \u2192 Website modules \u2192 Stripe.",
    "In Stripe Dashboard, Developers, Webhooks: add endpoint <website>/api/payments/stripe/webhook with events checkout.session.completed, checkout.session.async_payment_succeeded, invoice.paid and charge.refunded; enter its signing secret as STRIPE_WEBHOOK_SECRET.",
    "Publish the website, make a test payment with card 4242 4242 4242 4242, then switch both keys to live ones."
   ],
   "kind": "package",
   "readme": "https://runalio.com/catalog/stripe-payments/README.md",
   "download": "https://runalio.com/catalog/releases/stripe-payments/1.2.0.tar.gz",
   "sha256": "69d1bb9d23dc065bee5084018b338c5971f5cf767bbae6ba1fd4eab2e70a2d8f",
   "size": 7304,
   "files": [
    "README.md",
    "catalog.json",
    "server/config/catalogue.example.json",
    "server/features/stripe-payments.js",
    "site/payments.js"
   ]
  },
  {
   "id": "paypal-payments",
   "name": "PayPal payments and donations",
   "category": "payments",
   "version": "1.2.0",
   "summary": "PayPal Checkout buttons (PayPal, Venmo in the US, and cards through PayPal) for products and donations, using the same catalogue and ledger as stripe-payments. Server-priced orders, capture and webhook verification.",
   "requires": [
    "base"
   ],
   "settings": [
    {
     "name": "PAYPAL_CLIENT_ID",
     "required": true,
     "secret": false,
     "description": "REST app client ID from developer.paypal.com."
    },
    {
     "name": "PAYPAL_CLIENT_SECRET",
     "required": true,
     "secret": true,
     "description": "REST app secret."
    },
    {
     "name": "PAYPAL_ENV",
     "required": true,
     "secret": false,
     "description": "sandbox for testing, live for real payments."
    },
    {
     "name": "PAYPAL_WEBHOOK_ID",
     "required": false,
     "secret": false,
     "description": "ID of the webhook created for the app; enables refunds and closed-tab captures to be recorded."
    }
   ],
   "customer_needs": [
    "A PayPal Business account.",
    "At developer.paypal.com, create a REST app (Sandbox first) and enter PAYPAL_CLIENT_ID, PAYPAL_CLIENT_SECRET and PAYPAL_ENV=sandbox.",
    "Add a webhook for <website>/api/payments/paypal/webhook with PAYMENT.CAPTURE.COMPLETED and PAYMENT.CAPTURE.REFUNDED and enter its ID as PAYPAL_WEBHOOK_ID.",
    "Test with a sandbox buyer account, then switch to the Live app's credentials and PAYPAL_ENV=live."
   ],
   "kind": "package",
   "readme": "https://runalio.com/catalog/paypal-payments/README.md",
   "download": "https://runalio.com/catalog/releases/paypal-payments/1.2.0.tar.gz",
   "sha256": "adf674fb4df3d18afe0d734e362b2c6d461244edb69bb91c4b63fe83553855ca",
   "size": 5521,
   "files": [
    "README.md",
    "catalog.json",
    "server/config/catalogue.example.json",
    "server/features/paypal-payments.js",
    "site/paypal.js"
   ]
  },
  {
   "id": "apple-google-pay",
   "name": "Apple Pay and Google Pay",
   "category": "payments",
   "version": "1.1.1",
   "summary": "How to offer Apple Pay and Google Pay: automatically through stripe-payments (Stripe Checkout, no setup), or as buttons on the website's own page with Stripe's Express Checkout Element (custom domain and domain registration required).",
   "requires": [
    "stripe-payments"
   ],
   "settings": [],
   "customer_needs": [
    "Nothing beyond stripe-payments for the hosted page.",
    "For wallet buttons on their own pages: a connected custom domain registered under Stripe, Settings, Payment method domains."
   ],
   "kind": "guide",
   "readme": "https://runalio.com/catalog/apple-google-pay/README.md"
  },
  {
   "id": "bookings",
   "name": "Appointment bookings and calendar",
   "category": "scheduling",
   "version": "1.2.0",
   "summary": "Online booking for services: weekly hours in the business's time zone, notice and booking horizon, closed dates, double-booking protection, cancellation links, add-to-calendar files, a private calendar feed for Google/Apple/Outlook, reminders and owner notices.",
   "requires": [
    "base"
   ],
   "settings": [
    {
     "name": "OWNER_EMAIL",
     "required": false,
     "secret": false,
     "description": "Receives a notice for each booking and cancellation (needs the base email settings)."
    },
    {
     "name": "CALENDAR_FEED_KEY",
     "required": false,
     "secret": true,
     "description": "A long random value; enables the private calendar feed the owner subscribes to."
    },
    {
     "name": "BUSINESS_TIMEZONE",
     "description": "IANA time zone for local schedules and messaging, such as America/Chicago.",
     "required": false,
     "secret": false
    },
    {
     "name": "BOOKING_HOURS_JSON",
     "description": "Weekly hours as JSON, e.g. {\"mon\":[[\"09:00\",\"17:00\"]],\"tue\":[],\"wed\":[],\"thu\":[],\"fri\":[],\"sat\":[],\"sun\":[]}.",
     "required": false,
     "secret": false
    },
    {
     "name": "BOOKING_STEP_MINUTES",
     "description": "Whole minutes between available start times, 1 to 1440.",
     "required": false,
     "secret": false
    },
    {
     "name": "BOOKING_LEAD_MINUTES",
     "description": "Minimum notice in whole minutes, 0 to 525600.",
     "required": false,
     "secret": false
    },
    {
     "name": "BOOKING_HORIZON_DAYS",
     "description": "Days ahead customers can book, 1 to 366.",
     "required": false,
     "secret": false
    }
   ],
   "customer_needs": [
    "Tell the agent the services (name, duration), opening hours, time zone, minimum notice and closed dates.",
    "Optional: add CALENDAR_FEED_KEY, then subscribe to the feed shown in the admin area from Google Calendar, Apple Calendar or Outlook.",
    "Optional: set up the base email settings and OWNER_EMAIL for confirmations, reminders and notices."
   ],
   "kind": "package",
   "readme": "https://runalio.com/catalog/bookings/README.md",
   "download": "https://runalio.com/catalog/releases/bookings/1.2.0.tar.gz",
   "sha256": "095ea37bab4274b9043a99eed6b1ffed7ca94c40c7714d6a6dee10386abf651f",
   "size": 9954,
   "files": [
    "README.md",
    "catalog.json",
    "server/config/bookings.example.json",
    "server/features/bookings.js",
    "site/booking.js"
   ]
  },
  {
   "id": "support-chat",
   "name": "Customer chat and support inbox",
   "category": "support",
   "version": "1.2.0",
   "summary": "A chat button on every page and an owner inbox at <website>/api/admin/chat to answer, close and export conversations. Messages stay in the website's own database; optional email notice for new chats.",
   "requires": [
    "base"
   ],
   "settings": [
    {
     "name": "OWNER_EMAIL",
     "required": false,
     "secret": false,
     "description": "Receives a notice for each new conversation (needs the base email settings)."
    },
    {
     "name": "CHAT_WELCOME",
     "required": false,
     "secret": false,
     "description": "The first message visitors see."
    }
   ],
   "customer_needs": [
    "Open Settings \u2192 Website backend \u2192 Open business admin, then Chat. Your current team members can reply. ADMIN_PASSWORD is only for standalone installations.",
    "Optional: set up the base email settings and OWNER_EMAIL to be told about new chats."
   ],
   "kind": "package",
   "readme": "https://runalio.com/catalog/support-chat/README.md",
   "download": "https://runalio.com/catalog/releases/support-chat/1.2.0.tar.gz",
   "sha256": "e4d8b78418123ef1844d523ae13b0bc3a84a7b7451da6ecfde1a9110f554ad35",
   "size": 7257,
   "files": [
    "README.md",
    "catalog.json",
    "server/features/support-chat.js",
    "site/chat-widget.css",
    "site/chat-widget.js"
   ]
  },
  {
   "id": "newsletter",
   "name": "Newsletter sign-ups",
   "category": "marketing",
   "version": "1.2.0",
   "summary": "A consent-based newsletter sign-up form with double opt-in (when email sending is set up), one-click unsubscribe links and CSV export for the owner's email tool.",
   "requires": [
    "base"
   ],
   "settings": [],
   "customer_needs": [
    "Optional but recommended: set up the base email settings so new subscribers confirm their address.",
    "Send newsletters from their email tool (Mailchimp, Brevo, Buttondown...) with the exported list, including each subscriber's unsubscribe link."
   ],
   "kind": "package",
   "readme": "https://runalio.com/catalog/newsletter/README.md",
   "download": "https://runalio.com/catalog/releases/newsletter/1.2.0.tar.gz",
   "sha256": "caaf63cde2c614367d4faf03f7abd827471fceb25a54209daecb25e0d4abd773",
   "size": 3934,
   "files": [
    "README.md",
    "catalog.json",
    "server/features/newsletter.js",
    "site/newsletter.js"
   ]
  },
  {
   "id": "email-sending",
   "name": "Automatic emails (confirmations, notices, receipts)",
   "category": "email",
   "version": "1.2.0",
   "summary": "Transactional email composer and durable outbox with provider acceptance, failures and controlled retries. Preview sending is disabled.",
   "requires": [
    "base"
   ],
   "settings": [
    {
     "name": "EMAIL_PROVIDER",
     "required": true,
     "secret": false,
     "description": "resend, postmark, sendgrid or mailgun."
    },
    {
     "name": "EMAIL_API_KEY",
     "required": true,
     "secret": true,
     "description": "API key of that provider."
    },
    {
     "name": "EMAIL_FROM",
     "required": true,
     "secret": false,
     "description": "Sender address on a domain verified with the provider, e.g. hello@their-domain.com."
    },
    {
     "name": "MAILGUN_DOMAIN",
     "required": false,
     "secret": false,
     "description": "Mailgun only."
    }
   ],
   "customer_needs": [
    "An account with Resend, Postmark, SendGrid or Mailgun.",
    "Their own domain verified with that provider (DNS records the provider lists; Runalio-managed DNS customers can ask Runalio support).",
    "Enter EMAIL_PROVIDER, EMAIL_API_KEY and EMAIL_FROM in Settings \u2192 Website modules \u2192 Email sending."
   ],
   "kind": "package",
   "readme": "https://runalio.com/catalog/email-sending/README.md",
   "download": "https://runalio.com/catalog/releases/email-sending/1.2.0.tar.gz",
   "sha256": "83b816d9829e3df9992c2f647ef2dad34de4e3dddc410db89557582ccea53c21",
   "size": 2640,
   "files": [
    "README.md",
    "catalog.json",
    "server/features/email-sending.js"
   ]
  },
  {
   "id": "mailbox",
   "name": "Business mailbox (mail server)",
   "category": "email",
   "version": "1.1.1",
   "summary": "Runalio's built-in mail server: an inbox on the customer's own domain with up to 32 addresses, stored in the website's own container, read and sent from the Runalio portal's Email page. Nothing to install.",
   "requires": [],
   "settings": [],
   "customer_needs": [
    "Connect their own domain in Runalio (Domains & SSL).",
    "Set up email in the portal's Email page and approve the DNS records it shows (automatic with Runalio-managed DNS)."
   ],
   "kind": "guide",
   "readme": "https://runalio.com/catalog/mailbox/README.md"
  },
  {
   "id": "contact-form",
   "name": "Contact form and inquiries",
   "category": "forms",
   "version": "1.2.0",
   "summary": "Node.js inquiry form with recorded consent, CRM activity, owner notifications and portal Leads synchronization.",
   "requires": [
    "customer-crm"
   ],
   "settings": [
    {
     "name": "OWNER_EMAIL",
     "description": "Optional notification address; delivery also needs the email-sending module settings.",
     "required": false,
     "secret": false
    }
   ],
   "customer_needs": [
    "Add the contact widget to the page, review it, then Publish.",
    "Manage inquiry status in portal Leads; open Business admin for the full inquiry history and CSV export.",
    "Optional: install email-sending and configure its provider to receive owner notifications."
   ],
   "kind": "package",
   "readme": "https://runalio.com/catalog/contact-form/README.md",
   "download": "https://runalio.com/catalog/releases/contact-form/1.2.0.tar.gz",
   "sha256": "f7e1d1baba6a01dd86cde2fdbc91509931099b97e466cd80719e6e9cc39fcfaf",
   "size": 3396,
   "files": [
    "README.md",
    "catalog.json",
    "server/features/contact-form.js",
    "site/contact-form.js"
   ]
  },
  {
   "id": "business-analytics",
   "name": "Business analytics",
   "category": "analytics",
   "version": "1.2.0",
   "summary": "Runalio\u2019s first-party visitor, customer and sales dashboard, separated by website, currency and test activity.",
   "requires": [],
   "settings": [],
   "customer_needs": [
    "Open the portal Dashboard for visitors, customers and verified sales.",
    "Publish a paid backend to synchronize business records; preview activity remains separate."
   ],
   "kind": "guide",
   "readme": "https://runalio.com/catalog/business-analytics/README.md"
  },
  {
   "id": "business-profile",
   "name": "Business profile and services",
   "category": "business",
   "version": "1.2.0",
   "summary": "Business details, opening hours, service areas and a structured service list with an owner editor.",
   "requires": [
    "base"
   ],
   "settings": [
    {
     "name": "BUSINESS_TIMEZONE",
     "description": "IANA time zone for local schedules and messaging, such as America/Chicago.",
     "required": false,
     "secret": false
    },
    {
     "name": "BUSINESS_CURRENCY",
     "description": "Currency for quotes and invoices: usd, eur, gbp, cad or aud.",
     "required": false,
     "secret": false
    }
   ],
   "customer_needs": [
    "Open Business admin and add the business profile and available services.",
    "Use the public business/profile API to render business details. Review the page and Publish."
   ],
   "kind": "package",
   "readme": "https://runalio.com/catalog/business-profile/README.md",
   "download": "https://runalio.com/catalog/releases/business-profile/1.2.0.tar.gz",
   "sha256": "78984061aad6a39131dac6073e81fbac1bd45f1a2c4898567a91fb77bbd57952",
   "size": 2832,
   "files": [
    "README.md",
    "catalog.json",
    "server/features/business-profile.js"
   ]
  },
  {
   "id": "customer-crm",
   "name": "Customer records (CRM)",
   "category": "business",
   "version": "1.2.0",
   "summary": "Searchable customer records, private notes, lead status, activity and CSV export. Chat, bookings, visits, quotes and orders populate the same contacts.",
   "requires": [
    "base"
   ],
   "settings": [],
   "customer_needs": [
    "Open Business admin \u2192 Customers to manage contacts.",
    "The built-in contact-form still arrives in portal Leads; backend module contacts also synchronize to the portal customer dashboard."
   ],
   "kind": "package",
   "readme": "https://runalio.com/catalog/customer-crm/README.md",
   "download": "https://runalio.com/catalog/releases/customer-crm/1.2.0.tar.gz",
   "sha256": "a940b951aac9df171c078348845f2cc6bfcd2453c44ae06824db8af6434328c1",
   "size": 1972,
   "files": [
    "README.md",
    "catalog.json",
    "server/features/customer-crm.js"
   ]
  },
  {
   "id": "estimates-invoices",
   "name": "Estimates and invoices",
   "category": "payments",
   "version": "1.2.0",
   "summary": "Itemized quote drafts, private acceptance links, one-time invoice conversion and guest payment with verified settlement and refunds.",
   "requires": [
    "customer-crm",
    "stripe-payments"
   ],
   "settings": [
    {
     "name": "BUSINESS_CURRENCY",
     "description": "Currency for quotes and invoices: usd, eur, gbp, cad or aud.",
     "required": false,
     "secret": false
    }
   ],
   "customer_needs": [
    "Create and issue a quote or invoice in Business admin.",
    "Configure the Stripe module and its required signed webhook.",
    "Test with Stripe test keys in preview. Issued share links belong to their recipients; drafts are private."
   ],
   "kind": "package",
   "readme": "https://runalio.com/catalog/estimates-invoices/README.md",
   "download": "https://runalio.com/catalog/releases/estimates-invoices/1.2.0.tar.gz",
   "sha256": "5c01e348e11a260e94c0b3bb6074ccb602b7fb85fb18d9e522ec6e8f5b170cd1",
   "size": 4915,
   "files": [
    "README.md",
    "catalog.json",
    "server/features/estimates-invoices.js"
   ]
  },
  {
   "id": "orders",
   "name": "Orders and fulfillment",
   "category": "commerce",
   "version": "1.2.0",
   "summary": "Guest product orders with server-priced line snapshots, pickup/delivery, verified payments, customer tracking and paid-only fulfillment.",
   "requires": [
    "customer-crm",
    "stripe-payments"
   ],
   "settings": [
    {
     "name": "ORDER_FULFILLMENT",
     "description": "pickup, delivery or both. Defaults to pickup.",
     "required": false,
     "secret": false
    }
   ],
   "customer_needs": [
    "Configure real active products in server/config/catalogue.json through the coding agent.",
    "Configure Stripe and its required signed webhook. Add site/orders.js with a data-runalio-orders element.",
    "Manage paid orders in Business admin. Cancellation does not itself refund a payment."
   ],
   "kind": "package",
   "readme": "https://runalio.com/catalog/orders/README.md",
   "download": "https://runalio.com/catalog/releases/orders/1.2.0.tar.gz",
   "sha256": "ac20d4c26b89fff128dc5da202900091be6653a36212c2a0af634c64502e6145",
   "size": 5706,
   "files": [
    "README.md",
    "catalog.json",
    "server/features/orders.js",
    "site/orders.js"
   ]
  },
  {
   "id": "reviews",
   "name": "Reviews and testimonials",
   "category": "marketing",
   "version": "1.2.0",
   "summary": "Customer review submissions with explicit publication consent, owner moderation and an approved-review display.",
   "requires": [
    "customer-crm"
   ],
   "settings": [],
   "customer_needs": [
    "Add site/reviews.js and a data-runalio-reviews element.",
    "Moderate submissions in Business admin. Only approved reviews are displayed; no verified-purchase badge is claimed."
   ],
   "kind": "package",
   "readme": "https://runalio.com/catalog/reviews/README.md",
   "download": "https://runalio.com/catalog/releases/reviews/1.2.0.tar.gz",
   "sha256": "3c1aae1795c80b176f7318ff1eb9d802e9650d769935683908558fc1a29ee64b",
   "size": 3141,
   "files": [
    "README.md",
    "catalog.json",
    "server/features/reviews.js",
    "site/reviews.js"
   ]
  },
  {
   "id": "service-visits",
   "name": "On-site service visits",
   "category": "scheduling",
   "version": "1.2.0",
   "summary": "Service requests, addresses, preferred dates, staff dispatch, collision checks, job lifecycle and private customer tracking.",
   "requires": [
    "business-profile",
    "customer-crm"
   ],
   "settings": [
    {
     "name": "BUSINESS_TIMEZONE",
     "description": "IANA time zone for local schedules and messaging, such as America/Chicago.",
     "required": false,
     "secret": false
    },
    {
     "name": "OWNER_EMAIL",
     "description": "Business email for new requests and paid-order notices.",
     "required": false,
     "secret": false
    }
   ],
   "customer_needs": [
    "Add available services in Business profile.",
    "Add site/service-visits.js and a data-runalio-visits element to the page.",
    "Manage dispatch and job status in Business admin. Preferred dates are requests until staff confirm scheduling."
   ],
   "kind": "package",
   "readme": "https://runalio.com/catalog/service-visits/README.md",
   "download": "https://runalio.com/catalog/releases/service-visits/1.2.0.tar.gz",
   "sha256": "67eab3bd05ffd53186fb98b33d0cd470230101b4279874ca0145bb30ee685b5a",
   "size": 5519,
   "files": [
    "README.md",
    "catalog.json",
    "server/features/service-visits.js",
    "site/service-visits.js"
   ]
  },
  {
   "id": "sms-notifications",
   "name": "Transactional SMS updates",
   "category": "communications",
   "version": "1.2.0",
   "summary": "Optional Twilio Messaging Service for consented individual updates and service reminders, opt-out suppression, local quiet hours and verified delivery state.",
   "requires": [
    "base"
   ],
   "settings": [
    {
     "name": "TWILIO_ACCOUNT_SID",
     "description": "Twilio Account SID beginning AC.",
     "required": true,
     "secret": false
    },
    {
     "name": "TWILIO_API_KEY",
     "description": "Server API Key SID beginning SK. Use a restricted messaging key when available.",
     "required": true,
     "secret": true
    },
    {
     "name": "TWILIO_API_SECRET",
     "description": "The API key secret; never the account auth token.",
     "required": true,
     "secret": true
    },
    {
     "name": "TWILIO_MESSAGING_SERVICE_SID",
     "description": "Registered Messaging Service SID beginning MG. Configure advanced opt-out in Twilio.",
     "required": true,
     "secret": false
    },
    {
     "name": "SMS_ENABLED",
     "description": "yes to enable transactional SMS; no to pause. Preview never sends SMS.",
     "required": true,
     "secret": false
    },
    {
     "name": "BUSINESS_TIMEZONE",
     "description": "IANA time zone for local schedules and messaging, such as America/Chicago.",
     "required": false,
     "secret": false
    }
   ],
   "customer_needs": [
    "Use a Twilio account, API key and registered Messaging Service with advanced opt-out enabled.",
    "Record each recipient\u2019s actual transactional consent and local time zone in Business admin.",
    "Review sender/registration requirements in Twilio before enabling. Customer-provider charges are separate; messages run only from production.",
    "Only individual transactional updates are included. Provider timeouts become unknown, requiring reconciliation before any resend."
   ],
   "kind": "package",
   "readme": "https://runalio.com/catalog/sms-notifications/README.md",
   "download": "https://runalio.com/catalog/releases/sms-notifications/1.2.0.tar.gz",
   "sha256": "0255aae4665af5b3558dcf5a1298e96a94c27f34c6c7be5e06c65903926dad05",
   "size": 4661,
   "files": [
    "README.md",
    "catalog.json",
    "server/features/sms-notifications.js"
   ]
  }
 ]
}
