Integrations
This is a Premium Only Feature
Integrations connect Curling IO with the external services your club already relies on, keeping data synchronized and automating tasks that would otherwise require manual exports or imports.
- Mailchimp — Sync member contact details and registration tags to your marketing audience so mailing lists stay current.
- QuickBooks Online — Push online payment payout data into QuickBooks and track sync health directly from the integration dashboard.
- External Calendar — Mirror events from an iCal/WebCal feed (like Google Calendar) so your club calendar stays in step with your other schedules.
Finding Integrations
Within your admin area, click on the Club dropdown menu in the top bar and then click on Integrations.

Mailchimp
Connect your Curling IO member and registration data to a Mailchimp audience so lists stay up to date without manual exports.

What gets synced
- Member profile fields map to Mailchimp merge fields when present:
ID,EMAIL,FNAME,LNAME,PHONE,GENDER,DOB,PCODE, and mailing address components (addr1,city,state,zip,country). - Completed registrations add Mailchimp tags for the item name and, when applicable, the event category (e.g.,
Bonspiels).
Set up the connection
- Navigate to Admin → Integrations and open the Mailchimp panel.
- Enter a Mailchimp API key (create one via Mailchimp’s API key guide).
- Provide the target Audience (List) ID (see Mailchimp’s audience ID instructions).
- Save. Curling IO verifies the credentials and begins syncing changes automatically.
The integrations page shows the last successful sync time and any recent Mailchimp errors.
Common errors
- “Data did not match any of the schemas described in anyOf” — A merge field in Mailchimp rejected the data. Make sure optional fields stay optional or match Curling IO formats (for example, phone numbers formatted like
+1 403-555-1234). - “Invalid Resource”, “Member is in a compliance state”, “Permanently deleted” — The contact cannot be updated via the API. Ask the member to resubscribe directly through Mailchimp.
- API key or datacenter errors — Confirm the API key is active and belongs to the same datacenter as the target audience.
QuickBooks Online
Connect Curling IO with QuickBooks Online so online payment payouts land inside your accounting ledger without manual exports. OAuth credentials stay in the integration record, letting you manage access entirely from the admin panel.

Connection actions
- Connect QuickBooks — Launches the Intuit OAuth flow; sign in with a QuickBooks admin for the company that should receive your online payment data.
- Reconnect — Runs the OAuth handshake again when tokens are expiring or you need to switch companies. Use this as soon as you see token warnings or authorization-related sync failures.
- Disconnect — Severs the link, clears stored tokens, disables automatic sync jobs, and marks the integration inactive.
Status card fields
- Status —
Connectedafter a successful sync,Not connectedwhen tokens are missing or invalid,Pendingimmediately after setup,Failedwhen the most recent sync hit an error, andDisabledafter a manual disconnect. - Last synced — Timestamp of the latest successful import (
Neveruntil the first run finishes). - Consecutive failures — Count of consecutive sync errors; resets to
0once a job succeeds. - Company ID — Displays the QuickBooks realm/company currently authorized, or
Pendinguntil one is saved. - Credentials updated — When OAuth tokens were last refreshed.
- Refresh token expires — Expiration date for the long-lived refresh token. The status card warns inside seven days of expiry and flips to
Failedonce the date passes. - Access token expires — Short-lived token expiry for reference.
- Recent errors — Chronological list of failed sync attempts with timestamps and the message returned from Curling IO or Intuit.
Configuration form fields
- Deposit bank (
default_bank_account_id) — QuickBooks bank account that should receive online payment deposits. - Online payments clearing (
card_clearing_id) — Clearing or undeposited funds account that the accountant reconciles against. - Processing fee expense (
processing_fee_expense_id) — Expense account that captures online payment processing fees. - Notification email — Optional address for sync failure alerts; defaults to the club email when left blank.
- Active — Master toggle for the integration; turn it off to pause sync jobs (status becomes
Disabled).
Workflow tips
- Fill in all mapping fields before clicking Connect so the first sync can post without corrections.
- Keep an eye on the refresh-token expiry and run Reconnect before the date arrives to avoid authorization failures.
- After any failure, review Recent errors—most issues stem from missing mappings, expired tokens, or unexpected QuickBooks API responses.
- If you disconnect, the account mappings remain in place, but no new data flows until you connect again.
External Calendar
Import events from an external iCal/WebCal feed and display them alongside your Curling IO events.

Configure the feed
- In Admin → Club Dropdown → Integrations, open the External Calendar panel.
- Provide the subscription URL for the iCal/WebCal feed you want to mirror.
- (Optional) Add a notification email to receive sync error alerts.
- Enable the integration to start nightly syncs. You can disable or re-run syncs manually from this screen.
Find your Google Calendar public URL
- Open Google Calendar in a browser and click the gear icon → Settings.
- Under Settings for my calendars, pick the calendar you want to share.
- (Optional) If you want a publicly shareable feed, check Make available to public in the Access permissions for events section.
- In Integrate calendar, copy the Public address in iCal format.
- If you prefer to keep the feed private, use the Secret address in iCal format instead and keep it confidential.