Przejdź do treści
CLUP.life

Programiści Integrations

Integrations: calendars, automation, spreadsheets, websites, accounting

Connect CLUP.life to calendar apps, Zapier, Make, n8n, Excel, Google Sheets, your website, club management and accounting — with open building blocks instead of one-off integrations.

Dokumentacja techniczna jest dostępna po niemiecku i angielsku; w Twoim języku pokazujemy wersję angielską.

CLUP.life offers stable, open building blocks (REST, webhook, iCal, CSV, MCP) rather than ready-made connectors for individual vendors. Each organization builds the bridge to Zapier, Make, n8n or Power Automate itself — with the guides here.

Calendars: Google, Outlook, Apple, Nextcloud, Thunderbird#

  • Simplest way (free): Settings → Calendar subscription creates a personal subscription link — for all events or per club, group and team — that any calendar app can subscribe to. Calendar apps cannot send an Authorization header, so this is the right path for them; the link is a secret token and can be regenerated at any time. For club websites: event leadership can switch on a public calendar under Events → Subscribe to calendar (/api/v1/calendar-feed/public/<slug>.ics, public events only, without people), which you enter as a webcal:// link or in a calendar module of the website. Single events are available as .ics via “Add to calendar”.
  • With a key (scripts, servers): fetch GET /ext/exports/events.ics regularly (e.g. hourly via cron or task scheduler) and import it into your server calendar. Scope exports:read.
curl -H "Authorization: Bearer $CLUP_API_KEY" \
  "https://api.clup.life/api/v1/ext/exports/events.ics?from=2026-11-01T00:00:00Z&to=2027-11-01T00:00:00Z" \
  -o clup-termine.ics

Zapier, Make, n8n, Power Automate, IFTTT#

Event → action (“new event → message in the club chat”) runs through a webhook. The receiving end is the “Catch Hook” trigger (Zapier), “Custom webhook” (Make) or the Webhook node (n8n).

  1. In the organization under Manage → Interfaces create a webhook: the address of your Zap/scenario/workflow, choose the events.
  2. Copy the signing secret once and store it in your tool.
  3. Click Test: your trigger receives a ping event.
  4. The event carries only type and ID. Add an HTTP step “GET /ext/events?…” with the header Authorization: Bearer … and look the event up by entityId — this keeps names and content under your control and the key’s rights.

Trigger an action in CLUP.life (“new spreadsheet row → create task”): HTTP step POST /ext/organizations/<slug>/tasks with an organization key (tasks:write).

Excel and Google Sheets#

CSV exports open directly in Excel (semicolon, UTF-8 with BOM). For current data with a key:

let
    Schluessel = "clup_k_…",
    Quelle = Web.Contents(
        "https://api.clup.life/api/v1/ext/exports/events.csv",
        [Query = [from = "2026-11-01T00:00:00Z", to = "2027-01-01T00:00:00Z"],
         Headers = [Authorization = "Bearer " & Schluessel]]),
    Tabelle = Csv.Document(Quelle, [Delimiter = ";", Encoding = 65001])
in
    Tabelle
function termineLaden() {
  const schluessel = PropertiesService.getScriptProperties().getProperty('CLUP_API_KEY');
  const antwort = UrlFetchApp.fetch(
    'https://api.clup.life/api/v1/ext/events?from=2026-11-01T00:00:00Z&to=2027-01-01T00:00:00Z',
    { headers: { Authorization: 'Bearer ' + schluessel }, muteHttpExceptions: true });
  if (antwort.getResponseCode() !== 200) throw new Error(antwort.getContentText());
  const zeilen = JSON.parse(antwort.getContentText()).items
    .map((e) => [e.startsAt, e.title, e.location || '', e.organization.name]);
  const blatt = SpreadsheetApp.getActiveSheet();
  blatt.clearContents();
  blatt.getRange(1, 1, 1, 4).setValues([['Beginn', 'Titel', 'Ort', 'Verein']]);
  if (zeilen.length) blatt.getRange(2, 1, zeilen.length, 4).setValues(zeilen);
}

Website and CMS: WordPress, Jimdo, Wix, TYPO3#

  1. Create a key with events:read and posts:read (a personal key is enough in Basic; an organization key is Premium).
  2. Call the API on the server (WordPress: a small plugin or snippet using wp_remote_get) and cache the result for 5–15 minutes.
  3. Build the list from items[].title, startsAt, location. Only events the key owner may see appear; for a public website set the events to “public”.

Club management: migration and parallel operation#

  • Taking over members: via pre-fill/CSV import in the app (leadership only, with a review step). There is no import via the API yet (planned).
  • Reconciling members: GET /ext/exports/organizations/<slug>/members.csv (leadership, logged) or the JSON list GET /ext/organizations/<slug>/members. They return display name and role — no email addresses or phone numbers.
  • Newsletter tools (Brevo, CleverReach, Mailchimp, rapidmail): deliberately no direct sync. Automatically syncing member emails into a third-country tool is data processing and needs consent or a contract per club.

Accounting: DATEV, Lexware, sevDesk#

Financial data is not reachable with a key. Leadership with finance rights exports contributions and donations from the app as CSV (fixed column format, access logged). SEPA and CAMT files are available in the app’s payment reconciliation. A DATEV posting batch (EXTF) is planned but not built yet.

Further integrations#

GoalPathStatus
AI assistants (Claude, ChatGPT, own agents)MCP serveravailable
City calendar / council information systemiCal/JSON per organization (public events)available
Ticketing and registration formsWebhook event.created; participants API plannedpartial
Sign-in via Microsoft 365 / Google Workspace (OIDC, SCIM)planned for associations and municipalitiesplanned
“Connect with CLUP.life” (OAuth 2.1)API keys only for nowplanned
Integrations: calendars, automation, spreadsheets, websites, accounting · CLUP.life