Before you begin
What you’ll need
- An administrator account with Connected services permission and two-factor authentication
- A Zapier account and access to the Membership Portal integration
- Access to the destination spreadsheet, CRM, or staff notification channel
Connect your organization
Each connection belongs to one organization. Create a separate connection for each organization you manage.
- Open Connected services in your organization workspace, then expand Connect your Zapier account.
- Create a named Zapier connection key and copy it. The key is shown only once.
- Create a Zap using Membership Portal. Choose a trigger, connect your account, and paste the key.
- Test the trigger with a recent event. If no events exist yet, perform the matching operation using a test member or event, then test again.
- Connect the destination app and map the fields. Review the test result before turning on the Zap.
Choose what starts your workflow
Triggers represent completed membership operations. They do not run for ordinary profile edits.
- Historical imported membership terms do not trigger joined or renewed workflows.
- A payment and a renewal are separate events. Complimentary terms can renew membership without recording a payment.
- Amounts use the currency’s minor units. For USD, 5000 means $50.00. Keep the currency alongside the amount.
- Events occur after database commit and are delivered by the background queue. Delivery can be delayed during retries.
- Delivery is at least once. Use the event ID or business record ID to prevent duplicate rows or repeated external actions. Do not assume events arrive in order.
| Trigger | When it runs | Webhook event |
|---|---|---|
| Member joined | A member’s first membership becomes active. Historical imports are excluded. | automation.member_joined |
| Membership renewed | A renewal term is recorded, including an early renewal. | automation.membership_renewed |
| Membership lapsed | Membership becomes lapsed after the applicable grace period. | automation.membership_lapsed |
| Payment recorded | A successful payment is recorded, online or manually. | automation.payment_recorded |
| Event registration confirmed | A registration is confirmed, including promotion from a waitlist. | automation.event_registration_confirmed |
Keep a new-member spreadsheet
Member Joined → Google Sheets: Create Spreadsheet Row.
- Connect Membership Portal using the steps above.
- Choose Member Joined as the trigger and retrieve a sample.
- Add Google Sheets, connect your account, and choose Create Spreadsheet Row.
- Map member ID, name, email, membership option, and start date into your sheet.
- Test the destination action, inspect the result, and turn on the Zap.
Keep your CRM contacts current
Member Joined → HubSpot: Create or Update Contact.
- Connect Membership Portal using the steps above.
- Choose Member Joined as the trigger and retrieve a sample.
- Add HubSpot, connect your account, and choose Create or Update Contact.
- Use member email to find the contact. Map name and membership option into contact properties.
- Test the destination action, inspect the result, and turn on the Zap.
Update renewal dates in your CRM
Membership Renewed → HubSpot: Create or Update Contact.
- Connect Membership Portal using the steps above.
- Choose Membership Renewed as the trigger and retrieve a sample.
- Add HubSpot, connect your account, and choose Create or Update Contact.
- Find the contact by member email and map the new membership end date to your renewal property.
- Test the destination action, inspect the result, and turn on the Zap.
Let staff know who needs follow-up
Membership Lapsed → Slack: Send Channel Message.
- Connect Membership Portal using the steps above.
- Choose Membership Lapsed as the trigger and retrieve a sample.
- Add Slack, connect your account, and choose Send Channel Message.
- Choose a staff channel and include member name, membership option, and the member directory link.
- Test the destination action, inspect the result, and turn on the Zap.
Record payments in a spreadsheet
Payment Recorded → Google Sheets: Create Spreadsheet Row.
- Connect Membership Portal using the steps above.
- Choose Payment Recorded as the trigger and retrieve a sample.
- Add Google Sheets, connect your account, and choose Create Spreadsheet Row.
- Map payment ID, date, member, currency, and amount in minor units. Divide minor units by 100 in your sheet for currencies such as USD.
- Test the destination action, inspect the result, and turn on the Zap.
Notify your event team
Event Registration Confirmed → Gmail: Send Email.
- Connect Membership Portal using the steps above.
- Choose Event Registration Confirmed as the trigger and retrieve a sample.
- Add Gmail, connect your account, and choose Send Email.
- Choose a staff recipient and include event name, registrant name, email, and party size.
- Test the destination action, inspect the result, and turn on the Zap.
Send events to your own endpoint
Custom webhooks use the same event catalog and delivery history as Zapier.
- In Connected services, add an outbound webhook destination and provide your HTTPS endpoint. Its exact hostname must be approved by the platform operator.
- Choose the ready-made triggers you need. Each event currently uses version 1.
- Provide a signing secret of at least 32 characters. Store the same secret securely in your receiving application.
- Save, send a test, and enable the destination after the test succeeds.
- The request body is a CloudEvents envelope: id, type, time, organization_id, event_version, and data.
- Verify X-MembershipPortal-Signature against HMAC-SHA256(secret, timestamp + '.' + raw request body). The header is formatted v1=<hex digest>. Reject stale timestamps before processing.
- Use the CloudEvent id to deduplicate retries and manual replays; delivery IDs identify individual queue jobs.
- Respond with a 2xx status after safely accepting the event. Redirects are rejected and failures are retried with backoff.
- Keep signing secrets and complete callback URLs out of logs. Only send the event fields your destination needs.
Check a connection
Connected destinations shows delivery health. Failed delivery history provides timestamps, response status, and safe diagnostic information.
- An empty trigger test means there are no matching recent events; samples cover the last 30 days.
- A disconnected or expired API key must be replaced in Zapier. Re-enable the affected Zaps to create subscriptions with the new key.
- For a failed custom webhook, correct the receiver, test the connection, and re-enable it. Exhausted failures can be replayed from delivery history.
- Turning off a Zap removes its subscription. Revoke the connection key in Membership Portal to disable every subscription attached to it.