com.getorbyt.community.replyModmail
Replies to a member's Modmail thread as the mod team. Requires manage-mail. Moderators cannot start a thread: they answer one a member opened. The member sees the reply in the thread and in Activity, from the team rather than from the moderator.
Details · procedure
| Kind | procedure |
|---|---|
| Authority | community.getorbyt.com |
| Indexed |
Checks
Valid Lint pass{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "Replies to a member's Modmail thread as the mod team. Requires manage-mail. Moderators cannot start a thread: they answer one a member opened. The member sees the reply in the thread and in Activity, from the team rather than from the moderator.",
"errors": [
{
"name": "AuthenticationRequired"
},
{
"name": "CommunityNotFound"
},
{
"name": "InsufficientRole"
},
{
"name": "InvalidRequest"
},
{
"description": "The thread is the caller's own.",
"name": "InvalidAction"
},
{
"name": "ThreadNotFound"
}
],
"input": {
"encoding": "application/json",
"schema": {
"properties": {
"clientId": {
"description": "The sender's own id for this reply, so a reply retried after a lost answer returns the message it already created rather than a second one. Opaque to the service; repeated by the same account in the same thread it names that message.",
"maxLength": 64,
"type": "string"
},
"community": {
"format": "at-uri",
"type": "string"
},
"member": {
"description": "The member whose thread this answers.",
"format": "did",
"type": "string"
},
"text": {
"maxLength": 2000,
"minLength": 1,
"type": "string"
}
},
"required": [
"community",
"member",
"text"
],
"type": "object"
}
},
"output": {
"encoding": "application/json",
"schema": {
"properties": {
"message": {
"ref": "com.getorbyt.community.defs#modmailMessageView",
"type": "ref"
},
"thread": {
"ref": "com.getorbyt.community.defs#modmailThreadView",
"type": "ref"
}
},
"required": [
"thread",
"message"
],
"type": "object"
}
},
"type": "procedure"
}
},
"id": "com.getorbyt.community.replyModmail",
"lexicon": 1
}