Connect your account, then chat with AI to run tools.
Paste your MCPBundles URL into Teachable webhook settings and read school events in chat.
Try this workflow
Last Teachable event
Read export.json — event type, user email, course or product name, and final_price or net_charge from the latest webhook payload.
Opens MCPBundles Studio with this server selected. After sign-in, chat and run tools from the same thread.
Browse all toolsBuilt for
Course Creators, Online Educators, Membership Site Owners
Last Teachable event
Interprets sale, enrollment, and transaction event JSON.
Read export.json — event type, user email, course or product name, and final_price or net_charge from the latest webhook payload.
Subscription activity
Filters stored events by Teachable subscription lifecycle.
List recent deliveries and summarize any Sale.subscription_canceled or Transaction.created events with sale_id, recurring flag, and amounts.
New enrollments
Reads enrollment-specific nested user and course objects.
Find the most recent Enrollment.created delivery and report user email, course name, course_id, and enrolled_at.
How do I connect Teachable deliveries to MCPBundles?
Save a connection on MCPBundles, copy the hosted ingest URL from the credential panel, and paste it into Teachable under Settings → Webhooks. Select the events you want (or All events). Your agent reads stored deliveries — latest, history, and content — in chat.
Can an agent trigger a new delivery?
No. Ingest is read-only. Data arrives when Teachable sends it; agents query what already landed.
Domain knowledge for Teachable Webhook — workflow patterns, data models, and gotchas for your AI agent.
Teachable webhooks POST JSON when school events fire — sales, enrollments, subscription charges, refunds, user signups, and progress milestones. Each POST is one stored report. Inspect export.json on the latest delivery rather than assuming one fixed schema.
Teachable commonly sends a JSON array with one event object (some schools enable “send as JSON array” in webhook settings). When the body is an array, read export.json[0] for the event; a bare object may appear if array mode is off.
Shared envelope fields on every event:
Missing upstream values arrive as JSON null.
| type | Meaning |
|---|---|
| Sale.created | Product purchased or manual enrollment (free and paid; bundles = one sale) |
| Sale.subscription_canceled | Student canceled a subscription |
| Transaction.created | Charge succeeded (one-time or recurring billing cycle); excludes free / 100%-off coupon sales |
| Transaction.refunded | Charge refunded |
| Enrollment.created | Student enrolled in a course (each bundled course fires separately) |
| Enrollment.completed | Student finished 100% of a course |
| Enrollment.disabled | Student unenrolled (manual, failed payment, or access expiry) |
| User.created | New school account |
| User.updated | Profile change (new_name / old_name when name changed) |
| User.subscribe_to_marketing_emails / User.unsubscribe_from_marketing_emails | Marketing opt-in/out |
| UserTag.created / UserTag.removed | Tag added or removed |
| AbandonedOrder.created | Checkout abandoned (lead signal, not revenue) |
| LectureProgress.created | Lecture marked complete |
| Response.created | Graded quiz submitted |
| Comment.created | Course comment posted |
| EmailLead.created | Email lead form confirmed |
| Admission.created / Admission.disabled | Coaching service admission |
Sales (Sale.*) — object.id (sale id), object.user_id, object.school_id, object.price, object.final_price, object.currency, object.is_recurring, object.product (id, name, price, is_recurring), object.course (id, name, friendly_url), object.user (id, email, name, school_id, phone_number), optional object.coupon, object.affiliate, object.transactions[].
Transactions (Transaction.*) — object.id (transaction id), object.sale_id, object.user_id, object.school_id, object.final_price, object.net_charge, object.earnings_usd, object.amount_refunded, object.currency, object.status, object.is_recurring, object.purchased_at, nested object.sale (product/course/user context), optional Stripe charge details under object.data.
Enrollments (Enrollment.*) — object.id (enrollment id), object.user_id, object.course_id, object.sale_id, object.enrolled_at, object.percent_complete, object.is_active, nested object.user and object.course.
Users (User.*) — object.id, object.email, object.name, object.role, object.school_id, object.sign_in_count, object.unsubscribe_from_marketing_emails, object.phone_number.
Abandoned cart — object.user_email, object.main_product_name, object.main_product_price, object.checkout_url, object.order_token, optional object.order_bumps[].
Chain recurring revenue with object.sale_id and transaction object.id, not sale id alone.
Return the most recently stored report — tabular rows, raw text, or JSON depending on format. Default starting point for current report questions.
List recent stored reports — ids, capture time, filename, and format. Follow with latest report or get report for full content.
Return one stored report by report_id — full content with the same source/export envelope as latest report.
Connection status — whether any reports have landed, when the last file arrived, filename, and stored report count. Includes the ingest URL only when ...
Save a connection on MCPBundles, copy the hosted ingest URL from the credential panel, and paste it into Teachable under Settings → Webhooks. Select the events you want (or All events). Your agent reads stored deliveries — latest, history, and content — in chat.
No. Ingest is read-only. Data arrives when Teachable sends it; agents query what already landed.
Add the MCPBundles server URL to your MCP client configuration (Claude Desktop, Cursor, VS Code, etc.). The URL format is: https://mcp.mcpbundles.com/bundle/teachable-webhook. Authentication is handled automatically.
Teachable Webhook provides 4 tools that can be called by AI agents, along with a SKILL.md that gives your AI agent domain knowledge about when and how to use them.
Teachable Webhook uses API Key. Teachable Webhook requires credentials. Connect via MCPBundles and authentication is handled automatically.
Connect Teachable Webhook to any MCP client in minutes
https://mcp.mcpbundles.com/bundle/teachable-webhookThe link prefills the Add custom connector dialog — you still review the values and click Add, then Connect to complete OAuth.
Teachable Webhook and paste the MCP URL into Remote MCP server URL.Custom connectors at claude.ai require a paid Claude plan (Pro, Max, Team, or Enterprise).
More ecommerce integrations you might like
Sharetribe is a hosted marketplace platform. Use the Integration API to manage marketplace users, li...
Read 2Checkout IPN and LCN notification POST bodies stored as JSON.
Track and control stock across warehouses. Manage stock levels, locations, movements, and product de...
Thinkific is an online course platform that enables individuals and businesses to create, market, an...
Katana is a manufacturing resource planning (MRP) software that helps businesses manage inventory, p...
eBay seller platform APIs. Read and manage orders, inventory, offers, fulfillment, Promoted Listings...