Integrations and Connections
Connect BMIS with third-party services to extend functionality, including webhooks for custom workflows and popular app integrations.
Overview
Extend BMIS functionality by integrating with third-party services. Use webhooks for real-time notifications, connect to no-code tools like Zapier, or build custom solutions via the API. These integrations enable automated workflows, such as sending event registrations to your CRM or triggering payments in Stripe.
Review the BMIS API documentation for rate limits and authentication requirements before integrating.
Supported Partners and Tools
BMIS supports seamless connections with popular services. Choose from no-code platforms, payment processors, and communication tools.
Zapier
Connect to 5,000+ apps without coding. Automate event data flows to Google Sheets, Slack, or Mailchimp.
Stripe
Handle ticket sales and subscriptions directly in BMIS events.
Slack
Receive instant notifications for new registrations or event updates.
Google Analytics
Track event performance and attendee behavior.
HubSpot
Sync attendee data to your CRM for follow-up campaigns.
Custom Webhooks
Build bespoke integrations for any service.
Webhook Configuration
Set up webhooks to receive real-time event data, such as new registrations or ticket purchases. Webhooks POST payloads to your specified URL.
Create Webhook
Navigate to your BMIS dashboard > Settings > Integrations > Webhooks. Click "New Webhook".
Configure Endpoint
Enter your endpoint URL, e.g., https://your-webhook-url.com/bmis-events. Select events like registration.created or ticket.purchased.
Add Secret
Generate and copy the signing secret. Use it to verify payloads on your server.
Test and Activate
Send a test event. Verify receipt, then activate the webhook.
Webhook Payload Example
Handle incoming payloads in your server. Verify the signature using HMAC SHA-256 with your secret.
const crypto = require('crypto');
app.post('/webhook', (req, res) => {
const signature = req.headers['x-bmis-signature'];
const payload = JSON.stringify(req.body);
const secret = 'YOUR_WEBHOOK_SECRET';
const hash = crypto.createHmac('sha256', secret).update(payload).digest('hex');
const expected = `sha256=${hash}`;
if (signature === expected) {
console.log('Event:', req.body.event_type, req.body.data);
res.status(200).send('OK');
} else {
res.status(401).send('Unauthorized');
}
});
import hmac
import hashlib
from flask import Flask, request
app = Flask(__name__)
SECRET = 'YOUR_WEBHOOK_SECRET'
@app.route('/webhook', methods=['POST'])
def webhook():
signature = request.headers.get('X-Bmis-Signature')
payload = request.get_data()
expected = 'sha256=' + hmac.new(
SECRET.encode(), payload, hashlib.sha256
).hexdigest()
if signature == expected:
print('Event:', request.json['event_type'], request.json['data'])
return 'OK', 200
return 'Unauthorized', 401
HMAC SHA-256 signature of the payload for verification.
Type of event, e.g., registration.created.
Event-specific data, such as attendee details.
Custom API Integrations
For advanced use cases, interact directly with the BMIS API.
const response = await fetch('https://api.example.com/v1/events', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
title: 'Summer Conference 2025',
date: '2025-07-15',
capacity: 500
})
});
const event = await response.json();
console.log(event.id);
const response = await fetch('https://api.example.com/v1/events/{eventId}/registrations', {
headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
});
const registrations = await response.json();
console.log(registrations);
Always use HTTPS endpoints for webhooks. Store secrets securely and rotate them regularly. Validate all incoming payloads to prevent injection attacks.
Next Steps
Last updated today