Zapier
Automate MemberPass workflows with Zapier. 71 event triggers, 24 write actions, 35 searches — every REST route on api.memberpass.net and every event in the webhook catalog. Currently available as an invite-only integration.
The MemberPass Zapier app exposes 71 instant triggers, 24 write actions, and 35 searches — full parity with the live api.memberpass.net/v1 surface plus the complete WebhookEvent catalog.
Install
The MemberPass Zapier integration is currently invite-only and is not yet publicly listed in the Zapier App Directory. To request access, contact the MemberPass team. Once you receive an invite link, click it to connect your account. During the OAuth-less connection step Zapier asks for an API token — mint one at app.memberpass.net/settings/tokens with the abilities listed per trigger / action below.
The MemberPass Zapier app is undergoing testing and validation before its public Zapier listing. Access is invite-only during this period.
Production tokens start with mpt_live_; non-production (staging, local)
tokens start with mpt_test_. Both work — MemberPass rejects tokens from the
wrong environment automatically.
Triggers — 71 webhook events
Grouped by family. Every trigger uses the REST Hook pattern: on Zap activation Zapier calls POST /v1/webhook-subscriptions, on deactivation it calls the matching DELETE. All triggers additionally implement a polling fallback (performList) against /v1/webhook-events so the Zap editor can show a sample even before any live event has fired.
Every trigger additionally requires webhook-endpoint:manage on the token so Zapier can create and delete the underlying webhook endpoints.
How triggers work
You pick a trigger in Zapier
Example: New Subscription. Zapier's performSubscribe calls:
POST https://api.memberpass.net/v1/webhook-subscriptions
Authorization: Bearer mpt_live_<id>_<secret>
Idempotency-Key: <zap-scoped-uuid>
Content-Type: application/json
{
"name": "Zapier — New Subscription",
"url": "<zapier-inbound-url>",
"events": ["subscription.created"]
}MemberPass registers the endpoint
The response includes { data: { id }, secret }. Zapier stores both — the secret powers MP-Signature verification on every inbound event.
Event fires inside MemberPass
Any matching event enqueues a delivery to the Zapier inbound URL. Zapier verifies the signature, decodes the envelope, and hands data.* to your Zap.
You turn the Zap off
Zapier calls DELETE /v1/webhook-subscriptions/{id} with a matching idempotency key. The endpoint is removed server-side.
Actions — 24
All writes auto-inject a fresh Idempotency-Key header per call — retries are safe.
Project (5)
create_project—POST /v1/projectsupdate_project—PATCH /v1/projects/{project}archive_project—POST /v1/projects/{project}/archiverestore_project—POST /v1/projects/{project}/restoredelete_project—DELETE /v1/projects/{project}
Plan (5)
create_plan—POST /v1/projects/{project}/plansupdate_plan—PATCH /v1/projects/{project}/plans/{plan}publish_plan—POST /v1/projects/{project}/plans/{plan}/publishunpublish_plan—POST /v1/projects/{project}/plans/{plan}/unpublishdelete_plan—DELETE /v1/projects/{project}/plans/{plan}
Subscription + Member (4)
cancel_subscription—POST /v1/subscriptions/{subscription}/cancelban_member—POST /v1/projects/{project}/members/{member}/banunban_member—POST /v1/projects/{project}/members/{member}/unbankick_member—POST /v1/projects/{project}/members/{member}/kick
Resource + Access code (5)
create_resource—POST /v1/projects/{project}/resourcesunlink_resource—POST /v1/projects/{project}/resources/{resource}/unlinkdelete_resource—DELETE /v1/projects/{project}/resources/{resource}bulk_generate_access_codes—POST /v1/projects/{project}/plans/{plan}/access-codes/bulk-generatedelete_access_code—DELETE /v1/projects/{project}/plans/{plan}/access-codes/{access_code}
Webhook endpoint + Token (5)
create_webhook_endpoint—POST /v1/webhook-endpoints(the response surfaces the one-time plaintextsecret)delete_webhook_endpoint—DELETE /v1/webhook-endpoints/{endpoint}rotate_webhook_secret—POST /v1/webhook-endpoints/{endpoint}/rotate-secrettest_webhook_endpoint—POST /v1/webhook-endpoints/{endpoint}/testrevoke_token—DELETE /v1/tokens/{token}
Searches — 35
Return a single object (wrapped in [x]) or an array. Use them in dynamic dropdowns, cross-Zap lookups, or as standalone fetch steps.
Core resources
list_projects,get_project,find_project_by_handlelist_plans,find_plan_by_name,find_plan_by_idlist_subscriptions,find_subscription_by_idlist_members,find_member_by_id,find_subscriber_by_telegram_idlist_resources,get_resourcelist_access_codes,preview_access_code_cost
Infrastructure
list_payment_methods,get_payment_methodlist_webhook_endpoints,list_webhook_deliverieslist_tokens,get_token
Teams + RBAC
list_teams,get_team,get_current_teamlist_team_members,get_team_memberlist_roles,get_rolelist_groups,get_group
Ops + distribution
list_activity(bysubject_type+subject_id)get_bot_status,get_bot_link,get_portal_url,get_deep_link
Analytics
All require dashboard:read except list_transactions which uses project-subscription:view-any.
get_dashboard_metrics— MRR, active subscribers, churn, revenue trendget_earnings_report— gross / fees / net, timeseries byday/week/monthget_subscriber_analytics— signups, cancellations, churn rate, trial conversionget_transaction_breakdown— USD totals grouped byplan,payment_provider,currency, orprojectget_plan_performance— per-plan active subs, revenue, average ticketlist_transactions— keyset-paginated transaction list
Recipes
Prebuilt Zap ideas combining MemberPass triggers with common downstream apps. Swap the destination for whatever CRM, spreadsheet, or messaging tool fits your stack.
Revenue ops
New subscriber → welcome email
- Trigger:
subscription.createdon project X. - Action: Mailjet / Resend / Postmark → send a "Welcome" email using the subscriber's email field.
New subscriber → CRM upsert
- Trigger:
subscription.created. - Action: HubSpot / Pipedrive / Attio → create-or-update contact; tag with plan name + initial MRR.
Churn → Slack alert
- Trigger:
subscription.cancelledorsubscription.expired. - Action: Slack → post in
#churn-watchwith subscriber handle, plan, and days-subscribed.
Failed payment → Slack + follow-up email
- Trigger:
payment.failed. - Action 1: Slack → post in
#revenue-ops. - Action 2: Delay 12 hours, then run the
find_subscription_by_idsearch. If the next retry hasn't cleared the state, fire a Mailjet reminder with a one-tap link to update the payment method.
Past due → automated drip
- Trigger:
subscription.past_due. - Action: Mailjet sequence — day 1 "payment failed", day 3 "reminder", day 7 "last chance".
Trial converting → personal nudge
- Trigger:
subscription.trial_converting. - Action: Slack DM to the creator with a link to the subscriber's profile so they can intervene before the trial flips to paid.
Access codes
Access-code batch generated → Airtable export
- Trigger:
access_code.generated. - Action: Airtable → append a row with batch metadata (plan, count, expiry).
Access-code redeemed → Google Sheet log
- Trigger:
access_code.redeemed. - Action: Google Sheets → append a row with subscriber id, plan id, masked code, timestamp.
Gift campaign → generate + DM
- Trigger: New row in an Airtable "Influencer List".
- Action 1:
bulk_generate_access_codes(1 code,export_type=file). - Action 2:
get_deep_linkwithaccess_code=<code>to build a one-tap bot link. - Action 3: Slack DM / email the influencer with the link.
Team + audit
Member banned → Telegram ops chat
- Trigger:
member.banned. - Action: Telegram → send to an ops chat with reason + the ban-issuing admin's name.
Team role changed → audit trail
- Trigger:
team.member.role_changed. - Action: Notion database → append an entry with old/new role, actor, timestamp.
Suspicious activity → auto-revoke token
- Trigger:
list_activitysearch on an hourly schedule, filter foractor_kind = 'mcp'entries touching high-value resources. - Action: If count exceeds your threshold, call
revoke_tokenon the flagged token id and post the incident to Slack.
Billing
Grace-period warning → creator heads-up
- Trigger:
billing.grace_period_warning. - Action: Email the account owner with a link to
/settings/billingbefore the grace window elapses.
Account locked → ops escalation
- Trigger:
billing.account_locked. - Action 1: PagerDuty → incident.
- Action 2: Slack → post in
#oncallwith the tier cycle and last successful payment date.
Tier upgraded → CRM annotation + welcome pack
- Trigger:
billing.tier_upgraded. - Action 1: HubSpot → update lifecycle stage to "paid".
- Action 2: Loom or Notion → send the creator the tier-specific onboarding playbook.
Analytics & reporting
Weekly revenue digest
- Trigger: Schedule — every Monday 09:00.
- Action 1:
get_dashboard_metricswithperiod=7d. - Action 2:
get_transaction_breakdownwithdimension=payment_provider,period=7d. - Action 3: Email / Slack a digest combining both.
Plan performance → Google Sheet
- Trigger: Schedule — daily.
- Action 1:
get_plan_performancefor each active project. - Action 2: Google Sheets → append rows (one per plan) for the dashboard you hand to finance.
Month-end close → earnings statement
- Trigger: Schedule — 1st of each month 06:00.
- Action 1:
get_earnings_reportwithgranularity=dayfor the previous month. - Action 2: Generate a PDF via DocRaptor and email it to accounting@yourco.
Integrations hygiene
Onboarding checklist
- Trigger:
member.trial_joined. - Action 1: HubSpot → start "Trial onboarding" sequence.
- Action 2: Delay 3 days.
- Action 3:
find_member_by_idto check status; if still trialing, send a reminder.
Test webhook endpoint on deploy
- Trigger: GitHub Actions → new release published.
- Action:
test_webhook_endpointagainst every active endpoint in your team. Post a summary in Slack.
Rotate webhook secret → secret manager
- Trigger: Schedule — every 90 days.
- Action 1:
rotate_webhook_secreton the endpoint. - Action 2: Write the fresh
secretinto HashiCorp Vault / AWS Secrets Manager / 1Password. - Action 3: Slack → notify
#platformthat the rotation landed.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
Test-auth returns 401 AUTHENTICATION_REQUIRED | Token expired or revoked | Mint a new token |
Test-auth returns 403 TOKEN_MISSING_ABILITY | Token lacks team:view | Mint with team:view plus the specific abilities each trigger / action / search needs |
Test-auth returns 404 TENANT_MISMATCH | Token has no scope:team:<uuid> entry | Mint from the dashboard — the UI always appends the scope automatically |
performSubscribe returns 422 VALIDATION_FAILED on events.*.in | Event name typo / outdated | Rebuild the Zap; the Zapier app is kept in lockstep with the webhook catalog |
| Zap receives no events | Endpoint auto-disabled after consecutive failures | Re-enable from /settings/webhooks or use the test_webhook_endpoint action for a diagnostic ping |
Analytics search returns 400 VALIDATION_FAILED on dimension | get_transaction_breakdown requires plan / payment_provider / currency / project | Pick one of the four |
Source
The Zapier app is maintained at github.com/envigo-innovations/memberpass-zapier. PRs welcome. See the CHANGELOG for per-version event / action / search deltas.
Related
- Webhook events — canonical catalog of every
typevalue. - API authentication — how
mpt_live_/mpt_test_tokens are minted.
How is this guide?
Automations & Integrations
Ship MemberPass into Zapier, n8n, Make, LangChain, Postman, Insomnia, and any OpenAPI-aware toolkit — all backed by the same REST surface and outbound webhook taxonomy.
n8n
Drive MemberPass from n8n — verified node with a 71-event trigger and a full-parity action node covering every REST endpoint, plus HTTP/Webhook fallbacks.