Integrations
All 27 external service integrations documented with purpose, status, and implementation details.
Accounting
Xero
Primary accounting software — deeply integrated throughout the platform
| Status | Required |
| Package | packages/xero (Svelte + TypeScript), packages/openmembers/libs/xero.js |
| Auth | OAuth 2.0 with auto-refresh tokens |
| API | https://api.xero.com/api.xro/2.0 |
Capabilities:
- Create/update invoices and credit notes
- Manage contacts (customers, suppliers)
- Track items, accounts, and tracking codes
- Payment reconciliation
- Tax rates and currency handling
- Token refresh every minute via cron
Payment Gateways
PayFast
South African payment gateway — card and subscription payments
| Status | Required (SA) |
| File | packages/openmembers/libs/payfast.js |
| Auth | Merchant ID + Key + Passphrase (MD5 signature) |
| API | https://api.payfast.co.za/subscriptions/{token} |
Supports: stored token one-click payments, ad-hoc purchases, subscription billing, IP validation.
Mollie
European payment gateway
| Status | Optional |
| File | packages/openmembers/libs/mollie.js |
| Auth | API key via @mollie/api-client |
Payment creation with redirect and webhook URLs. Default currency: EUR.
PayPal
International payments
| Status | Optional |
| File | packages/openmembers/libs/paypal.js |
| Auth | paypal-rest-sdk (sandbox + production modes) |
Credit card and PayPal payments. Uses Fixer.io for currency conversion.
Flutterwave
Multi-country payment gateway
| Status | Optional |
| Config | Public key, secret key, encryption key in config |
M-Pesa
Mobile money payments (Africa)
| Status | Optional |
| Config | Configuration in openmembers config section |
Zapper
South African POS payment
| Status | Optional |
| Config | Merchant ID, Site ID, API Key |
Fixer.io
Currency exchange rates
| Status | Optional |
| File | packages/openmembers/libs/currencyconversion.js |
Real-time exchange rate conversion, default ZAR to USD. Used by PayPal integration.
Infrastructure & Access Control
Papercut (Print Management)
Print credit and user management via SSH
| Status | Optional |
| File | packages/openmembers/libs/papercut.js |
| Protocol | SSH2 with private key auth |
User creation/deletion, balance management, group management, suspension/unsuspension, reconnection with 60s retry.
OpenRadius (WiFi)
RADIUS server for WiFi authentication
| Status | Optional |
| File | packages/openmembers/libs/openradius.js |
| Auth | Basic auth to REST API |
User provisioning, auto-generated passwords (happypass), service profiles, login testing.
Clay (Smart Locks)
Door access control via smart locks + RFID tags
| Status | Optional |
| Models | ClayLock, ClayAccessGroup, ClayTag |
Smart lock assignment to spaces, access group management, RFID/NFC tag provisioning.
Admyt (Parking)
Parking access and car management
| Status | Optional |
| Integration | REST API with credentials from config |
Car CRUD operations, remote user linking, license plate normalization, diff-based sync.
Communication
Nodemailer (Email)
Transactional email via SMTP
| Status | Required |
| File | packages/openmembers/libs/mail.js |
| Templates | Handlebars with custom helpers (date formatting, encryption, timezone) |
Booking confirmations, invoice notifications, payment receipts, password resets, welcome emails, admin notifications.
BulkSMS
SMS notifications (current)
| Status | Optional |
| File | packages/openmembers/libs/bulksms.js |
| API | https://api.bulksms.com/v1/messages |
Clickatell (SMS - Legacy)
Legacy SMS provider
| Status | Optional (Legacy) |
| File | packages/openmembers/libs/clickatell.js |
Slack
Webhook-based notifications
| Status | Optional |
| File | packages/openmembers/libs/slack.js |
Zulip (Chat)
Internal team messaging
| Status | Optional |
| Integration | Stream-based messaging, check-in callbacks |
Matrix Protocol
Decentralized chat
| Status | Optional |
| Package | packages/matrix (matrix-js-sdk v9.9.0) |
Mailchimp
Email marketing campaigns
| Status | Optional |
| Package | packages/mailchimp |
Mailarchiva
Email archival for CRM
| Status | Optional |
| Usage | CRM opportunity view — retrieves email history by sender/recipient |
Cloud & Search
Google Cloud Pub/Sub
Asynchronous message queue
| Status | Required |
| File | packages/api/libs/messagequeue.js |
| Credentials | JSON keyfile at /home/workspaceman/keys/Google_Keyfile.json |
Google BigQuery
Analytics data warehouse
| Status | Optional |
| File | packages/api/bin/bqlogger.js |
Google Sheets
Spreadsheet data import/export
| Status | Optional |
| File | packages/openmembers/libs/sheets.js |
Elasticsearch
Full-text search
| Status | Optional |
| File | packages/openmembers/libs/elasticsearch.js |
| Index | "myopen" — types: user, room, organisation, invoice, guest, log |
Sentry
Error tracking and monitoring
| Status | Optional |
| File | packages/api/libs/instrument.js |
| Coverage | All 5 services (API, OpenMembers, CRM, Jobs, Cron) |
Authentication Providers
| Provider | Data Retrieved | Status |
|---|---|---|
| Facebook OAuth | Email, name, profile picture, age range | Optional |
| Google OAuth | Email, profile info | Optional |
| LinkedIn OAuth | Email, lite profile | Optional |
| Twitter OAuth | Authentication only | Optional |
| reCAPTCHA | Bot prevention on forms | Optional |
Integration Summary
| Category | Service | Purpose | Required? |
|---|---|---|---|
| Accounting | Xero | Invoices, payments, contacts, credit notes | Yes |
| Payment | PayFast | SA card/subscription payments | Yes (SA) |
| Payment | Mollie | European payments | No |
| Payment | PayPal | International payments | No |
| Payment | Flutterwave | Multi-country | No |
| Payment | M-Pesa | Mobile money | No |
| Payment | Zapper | SA POS | No |
| Messaging | Google Pub/Sub | Async job queue | Yes |
| Nodemailer/SMTP | Transactional email | Yes | |
| Papercut | Print accounting via SSH | No | |
| WiFi | OpenRadius | RADIUS user provisioning | No |
| Access | Clay | Smart locks + RFID | No |
| Parking | Admyt | Parking access | No |
| SMS | BulkSMS | SMS notifications | No |
| Chat | Slack / Zulip / Matrix | Notifications / messaging | No |
| Marketing | Mailchimp | Email campaigns | No |
| Search | Elasticsearch | Full-text search | No |
| Monitoring | Sentry | Error tracking | No |
| Analytics | BigQuery | Data warehouse | No |
| Currency | Fixer.io | Exchange rates | No |