# Moderate and answer Teachable lesson comments

> Clear the Teachable Pending Approval queue daily: approve real student questions, deny spam, and answer each one from the lesson it was asked on.

Source: https://cotlet.dev/integrations/teachable-api-mcp-server/moderate-lesson-comments

With comment moderation on, every student question waits in Site > Comments under Pending Approval and stays invisible on the lesson until you click Approve. After a weekend away, Monday starts with a queue from several courses, with link spam mixed in.

Cotlet does it in your own Teachable account with list\_comments, get\_curriculum, get\_lesson, moderate\_comment and reply\_to\_comment, called by your AI agent, an n8n workflow or a script.

[Request access](https://cotlet.dev/app/signup?app=teachable) [All Teachable tools](https://cotlet.dev/integrations/teachable-api-mcp-server)

Hosted · nothing to install or maintain

Official options

## Can Teachable do this on its own?

Teachable's public API has no comment endpoint, and its experimental MCP article lists no comment actions (checked 12 Oct 2026). Zapier has a New Comment trigger only, with no way to approve, deny or reply. Teachable can email owners and authors when a comment needs moderation, under Settings > Notifications, but each decision and each answer is still a click in the admin.

By hand

## How you do it in Teachable today

1. Turn on Enable comment moderation under Settings > General > Courses, so student comments need school owner approval before they appear on lessons.
2. Open Site > Comments for every course at once, or the Comments tab of one course, and switch to the Pending Approval tab.
3. Click a comment to open the Teachable flyout, read the parent and sibling comments of the thread, and choose Approve or Deny.
4. Answer from the same flyout or from the lesson page, then go back to the list for the next comment.
5. Mark handled comments with Mark as Read. Teachable's select-all covers only the current page, so a long queue takes several rounds, and the same question asked in two courses gets answered twice.

With an agent

## How to moderate and answer Teachable lesson comments

Prompt

```
Go through the Pending Approval comments in all my courses: approve real questions, deny spam, and draft an answer to each question from the lesson.
```

1. 01  
### Collect the whole queue first  
The agent reads list\_comments with status pending across all courses, plus unread comments, since a school with moderation off has no Pending Approval tab and comments go live at once. It groups everything by course and lesson before deciding on any of it.
2. 02  
### Sort questions, praise and spam  
A comment with an outside link, a sales pitch or nothing to do with the lesson is marked for denial. A real question or a thank-you is marked for approval. Refund requests, access problems and anything it cannot classify are held for you, not guessed.
3. 03  
### Answer from the lesson itself  
The comment names its lesson, so the agent finds it in get\_curriculum and reads it with get\_lesson. The draft answers from that text and names the lesson or block it relies on. When the lesson does not cover the question, the draft says so and you write or edit the answer.
4. 04  
### Approve first, then reply  
moderate\_comment runs before reply\_to\_comment, because Teachable keeps a pending comment off the lesson until it is approved, so an answer under it would not be seen. Denied comments get no reply. Replies leave out emails, order details and anything personal, since the whole course reads them.
5. 05  
### Point out repeated questions  
When the same question shows up under one lesson three or more times in a week, the report suggests adding the answer to the lesson text instead of answering it again.

### What you get back

Example data

```
Pending Approval: 9 comments in 3 courses.
Approved 6. Denied 2: link spam on Lesson 1: Welcome and Lesson 3: Functions.
Replied to 5 questions after your OK, including Maria Kowal on Lesson 3: Functions (returning two values).
Held for you: Tom Becker in Team Onboarding says his certificate is missing.
Asked 3 times this week under Live Q&A 4: where the replay is. Consider adding the link to that lesson.
```

### Other ways to ask

- Every morning at 8, clear the Pending Approval queue in the Python course only and send me the questions you could not answer.
- Approve everything pending, deny anything with a link, and do not post any replies today.
- Show me the unread comments from the last 7 days across all courses, grouped by lesson, without approving anything.
- Draft answers to the open questions in Team Onboarding and let me edit each one before it is posted.

Before you automate it

## What Teachable allows, and what to know first

- Teachable shows the Pending Approval tab in Site > Comments only while Enable comment moderation is on; with it off, student comments appear on the lesson at once.
- A comment denied in Teachable stays in the admin with a Denied tag, hidden from students, and a comment the owner deletes from the lesson page is kept the same way.
- Teachable comments are public by default and cannot be made private, and comments on a public preview lesson can be found by search engines.
- Teachable shows the Student comments toggle in a lesson's Lesson settings only after the lesson has content, so a new empty lesson collects no comments.
- Teachable emails students a Comments notification when a lecture discussion they joined gets a new comment, unless the owner turns it off under Emails > Settings, so one reply can reach everyone in the thread.

moderate\_comment and reply\_to\_comment ask for your OK by default. To run it daily without you, switch confirmation off for those tools in your dashboard.

Sources: [Teachable Help: Course Comments](https://support.teachable.com/en/articles/11682464-course-comments) · [Teachable Help: General Settings](https://support.teachable.com/en/articles/11682438-general-settings) · [Teachable Help: Email Notifications](https://support.teachable.com/en/articles/11682445-email-notifications) · [Teachable Help: Sections and Lessons (public previews)](https://support.teachable.com/en/articles/11682453-sections-and-lessons)

REST

## Call moderate\_comment from a script

curl

```
curl https://cotlet.dev/api/v1/teachable/moderate_comment \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"comment_id":"88120431","decision":"approve"}'
```

Example response

```
{
"comment_id": "88120431",
"status": "approved"
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the tool is teachable\_moderate\_comment. Example data.

[Schedule it in n8n, Make, Zapier or cron](https://cotlet.dev/integrations/teachable-api-mcp-server#automations)

Tools

## Teachable tools this automation uses

__Cotlet Teachable tools used to moderate and answer Teachable lesson comments__
| Tool | Parameters |
| ------------------ | ----------------------------------------------- |
| list\_comments | course\_id, status, unread\_only, limit, cursor |
| get\_curriculum | course\_id |
| get\_lesson | course\_id, lesson\_id |
| moderate\_comment | comment\_id, decision |
| reply\_to\_comment | comment\_id, body |

[All 15 Teachable tools with descriptions](https://cotlet.dev/integrations/teachable-api-mcp-server#tools)

## More Teachable automations

- [Create Teachable coupon codes for a sale](https://cotlet.dev/integrations/teachable-api-mcp-server/create-discount-coupons)
- [Update Teachable lessons from Markdown files](https://cotlet.dev/integrations/teachable-api-mcp-server/update-lessons-from-markdown)
- [Teachable API and MCP server: every tool](https://cotlet.dev/integrations/teachable-api-mcp-server)
- [All use cases](https://cotlet.dev/use-cases)

## Give your agent access to Teachable.

Free 7-day trial with 5,000 credits, no card needed. Cotlet is independent and not affiliated with Teachable.

[Request access](https://cotlet.dev/app/signup?app=teachable)
