We have a Teachable account with approx 5 membership tiers. When a new member is added to a Teachable tier, we want them to have access to Discourse via SSO and be granted access to specific Categories (already defined by Groups).
If a member stops paying, they must lose access to the paid Discourse Categories but maintain access to the free Categories.
The bigger issue is — what happens if someone joins Discourse but never joins a Teachable course? Or joins Discourse first and then Teachable second?
How should I think of what ultimately manages SSO for Teachable and Discourse? Do I need a third platform (Wordpress) to be the SSO Provider?
That’s hard to tell without more knowledge about Teachable. It looks like you can’t use their API unless you’re on their Pro tier.
If you know how to get Teachable to control WordPress and can manage groups in Wordpress that get pushed to Discourse, then that could work.
Teachable to Discourse would be best, if it’s possible, but it’s hard to tell if it’s possible. If you have access to their API, then a Discourse plugin that checked their status in Teachable (or better, made teachable the SSO source) could be what you want.
The ideal solution would be to get Teachable to support DiscourseConnect in a similar way to what Memberful have done: Integrate Discourse with Memberful | Memberful.com. This is something that would need to be implemented by Teachable. It might be worth asking them about it though. They could probably get some assistance setting up the integration from the Discourse team, or from the Meta community.
Note that the approach suggested in that post can also be used on sites that are not hosted by Communiteq. This is done by pointing the Teachable webhook to Zapier (or a similar service) and having Zapier trigger sending the Discourse invite email. Details about configuring that on Zapier are here: Automate sending Discourse invite emails with Zapier.