The post review system provides comprehensive content moderation capabilities, allowing community moderators to review, approve, or decline posts before they appear in public feeds. This ensures high-quality content and maintains community standards through structured approval workflows.

Review Queue

Manage posts awaiting moderation approval

Approval System

Approve or decline posts with proper workflows

Feed Management

Query posts by different feed types and status
Post review is a community-level setting that must be enabled by community administrators. Once enabled, all posts require approval before becoming visible to community members.

Feed Types

Posts in communities with review enabled flow through different feed states based on their moderation status.
Feed TypeDescriptionVisibilityWho Can Access
reviewingPosts awaiting moderation approvalModerators + Post AuthorUsers with REVIEW_COMMUNITY_POST permission
publishedApproved posts visible to communityAll Community MembersEveryone in the community
declinedRejected posts hidden from public viewPost Author OnlyOriginal post author
Check the current status of a post to determine its moderation state and display appropriate UI elements.
// Get feed type for a specific post
func getPostFeedType(post: AmityPost) -> AmityFeedType {
    let feedType = post.getFeedType()
    
    switch feedType {
    case .reviewing:
        print("Post is awaiting review")
        return .reviewing
    case .published:
        print("Post is published and visible")
        return .published
    case .declined:
        print("Post has been declined")
        return .declined
    @unknown default:
        print("Unknown feed type")
        return .published
    }
}

Post Approval & Decline

Moderators with the REVIEW_COMMUNITY_POST permission can approve or decline posts in the reviewing feed, controlling what content becomes visible to the community.

Workflow Steps

1

Check Permissions

Verify that the user has moderation permissions for the community.
2

Review Content

Examine the post content to determine if it meets community standards.
3

Make Decision

Choose to approve or decline the post based on your review.
4

Handle Response

Process the API response and update the UI accordingly.

Approve Posts

Approve posts to move them from the reviewing feed to the published feed, making them visible to all community members.

Parameters

ParameterTypeRequiredDescription
postIdStringYesID of the post to approve
do {
    let result = try await postRepository.approvePost(withId: "<post-id>")
} catch {
    // Handle error here
}

Decline Posts

Decline posts to move them from the reviewing feed to the declined feed, hiding them from public view.

Parameters

ParameterTypeRequiredDescription
postIdStringYesID of the post to decline
do {
    let result = try await postRepository.declinePost(withId: "<post-id>")
} catch {
    // Handle error here
}

Query Community Posts by Feed Type

Retrieve posts from different feeds based on user permissions and feed type requirements. Users with moderation permissions can access all posts, while regular users can only see their own posts in reviewing and declined feeds.

Parameters

ParameterTypeRequiredDescription
communityIdStringYesID of the community to query posts from
feedTypeAmityFeedTypeYesType of feed (reviewing, published, declined)
sortByAmityPostSortOptionNoSort order (firstCreated, lastCreated)
includeDeletedBoolNoWhether to include deleted posts in results
var token: AmityNotificationToken?

token = feedRepository.getCommunityFeed(withCommunityId: "<community-id>",
                                sortBy: .firstCreated,
                                includeDeleted: true,
                                feedType: .reviewing).observe { collection, change, error in
    // Handle result here
}

Troubleshooting

Practical Examples

Community Moderation Dashboard

Build comprehensive dashboards for moderators to efficiently review and manage community content with batch operations.

Automated Content Filtering

Implement pre-screening rules that automatically flag certain content types for manual review by moderators.

Escalation Workflows

Create multi-level approval processes where complex content can be escalated to senior moderators or administrators.

Analytics & Reporting

Track moderation metrics, response times, and content quality trends over time for community insights.