Padlet
Create and manage padlets
- Category
- Pending
- Primary Subcategory
- Pending
Integration details
Description
Padlet is a visual board platform used by teachers, students, and teams to collect, organize, and share content on collaborative boards called padlets. The Padlet app for ChatGPT connects the user's own Padlet account via OAuth so they can work with their padlets directly in conversation. With this app, users can: - Create padlets and organize them with sections, layouts, wallpapers, and appearance settings. - Add, edit, arrange, pin, and sort posts, and draw connections between posts on Freeform boards. - Read, search, and summarize board content, including AI analysis of images, videos, audio, and document attachments. - Comment on posts and moderate discussion. - Manage sharing settings by modifying permissions, passwords, collaborators, and email invitations. - Schedule automations such as timed freezes, and freeze or unfreeze boards on demand. - Grade student submissions and sync grades to a connected LMS (e.g. Canvas or Schoology) via LTI. - For school and team library admins: manage membership and invitations, per-role permissions, SSO configuration (OAuth providers and SAML), approved email domains, content safety, and allowed attachment types. The app does not yet fully support Padlet's Sandbox (whiteboard) format; it works with Padlet's other board formats. All actions run against the authenticated user's Padlet account and respect Padlet's permission model — the app can only see and change what the signed-in user could see and change in Padlet itself. Deletions of posts and sections are soft-deletes that can be restored with a dedicated restore tool, and the small number of irreversible operations (deleting comments, automations, or custom fields, removing collaborators, invitations, or approved domains) are annotated as destructive so the assistant confirms with the user before proceeding.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Category
- Pending
- Primary Subcategory
- Pending
- Secondary Subcategories
- None listed
- Brand
- Unknown
- Access
- Account required
- First tracked
- 2026-09-23
- Tool count
- 71
- Geography
- US
The broad Category that contains the Primary Subcategory.
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Get alerts for Padlet
Get updates when Padlet’s Discoverability Score or category rank changes.
ChatGPT Plugin Discovery Score
ChatGPT Plugin discovery is coming soon
ChatGPT can surface a Plugin when it matches a user's request.Your Plugin Discovery Score measures how often yours appears.
No spam. Unsubscribe any time.
What discovery looks like

Competitive lineup
71 tools agents can invoke
Add a comment to a post given the post id. - Purpose: Add a comment to a post given the post id. - What this tool returns: { success: true, comment_id: "123" } on successful comment addition; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }. Guidance for use: - post_id should be a string that represents an integer ID, i.e. only contain digits. If you don't know the integer ID, try getting the padlet's content first.
add_comment_to_post
Request approval for email domains for a school library. - Purpose: Add pending domains that require approval to enable automatic user registration. - What this tool returns: { success: true, approvedDomains: [...] } with the pending domains. Guidance for use: - Requires user to be a library admin. - Only works for school libraries. - Supports adding multiple domains in one request. - All domains are added as pending and require approval. - Domain format must be valid (e.g., 'example.edu'). - 61 public email providers are blocked (gmail.com, yahoo.com, etc.). - Max 10 pending domains per library. - Domains are case-insensitive and must be unique per library.
add_library_approved_domain
Analyzes the content of attachments (images, videos, audio, PDFs, documents) from posts on the padlet. - Purpose: Retrieve and analyze post attachment content so you can describe, summarize, or answer questions about what's in the attachments. - What this tool returns: { success: true, analysis: { posts: [{ post_id, attachments: [{ description }] }] } } with a structured analysis grouped by post_id; otherwise { success: false, message: "..." }. Guidance for use: - Use this tool when the user asks about the content of images, videos, audio, documents, or other attachments in posts. - Identify which posts have attachments before calling. If an EXPLICIT list of post_ids to analyze has been provided to you in the conversation, use those directly. Otherwise, call `get_padlet_content` first to discover them. - A post has an attachment if its "attachment" field contains a URL (not empty, not "poll"). Check BOTH the "attachment" field and "attachment_props" — some posts have a URL in "attachment" but empty "attachment_props". - Pass the post_ids of posts whose attachments you want to analyze. The tool will retrieve the attachment URLs automatically. - Pass at most 50 post IDs per call. If there are more, prioritize the most relevant posts. - Only analyzes attachments the current user has permission to view. - Do not use this tool if the user is not asking about attachment content. - Results are cached: previously analyzed attachments return cached descriptions without re-analyzing. - IMPORTANT: Only pass the `query` parameter when the user has a specific, targeted question about the attachment content (e.g. "What formula is on slide 3?", "What color is the logo?"). For general requests like "describe the attachments", "what's in the images", or "summarize the content", do NOT pass a `query` — omit it entirely so the tool returns a comprehensive generic description.
analyze_post_attachments
Bulk invite users to a library via email or create emailless student accounts. - Purpose: Add multiple users to a library - either by sending email invitations or by creating emailless student accounts. - What this tool returns: { success: true, invited_count: N, duplicate_user_count: M, emailless_users_processed: [...] } or error details. Guidance for use: - Requires permission to invite members or manage members in the library. - Supports batch operations (up to 100,000 users). - Valid roles for educational libraries: admin, teacher, student. - Two modes based on email presence: 1. Email provided: User is invited via email (existing users added immediately, others receive invitation email). 2. Email blank + name + password provided: Creates a new emailless student account (only student role allowed). - For emailless users, the tool returns generated usernames that can be distributed to students. - Duplicate users (already members with same role or already invited) are skipped and counted. - Invalid inputs will cause the entire batch to fail with detailed error messages.
bulk_invite_library_members
Finish an upload started by start_attachment_upload. Call this once per file, after the PUT to `upload_url` has succeeded. This is what checks the file: its real size against the padlet's per-file limit, and its actual bytes against the content type declared at the start. A file that fails either check is deleted and cannot be attached. Pass the same `wall_id` you passed to start_attachment_upload — the per-file limit belongs to the padlet, so completing against a different one can reject a file that was fine. On success, pass the returned `url` to the `attachment` field of create_posts or update_posts. One attachment per post; call this once per file and use each URL once. Returns { success: true, url: "...", file_name: "...", content_type: "...", size_bytes: 123 }, or { success: false, error_code: "...", message: "..." }.
complete_attachment_upload
Mark an onboarding step as completed for a library. - Purpose: Complete a specific onboarding task or dismiss the entire onboarding flow. - What this tool returns: { success: true, onboarding_flow: {...} } with updated task status. Guidance for use: - School libraries require at least admin role to complete steps. - Non-school libraries (team/classroom) require owner role. - Valid step_id values depend on library type: - School: connect_school_sso, add_admins, add_teachers_and_students - Non-school: customize_team_info, add_members, pick_plan, make_private_wall - Once a step is completed, it cannot be reverted.
complete_library_onboarding_step
- Purpose: Create automations on a padlet. - What this tool returns: { success: true, automation_id: "123" } on successful automation creation; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }. Guidance for use: - Automations are scheduled actions to be executed in the future. They must not be scheduled to execute on a past date. - The automation instructions should be calculated based on the user's timezone and current time. However, the scheduled_at timestamp must be converted to UTC. - Do not inform the user about timezone handling. You must use a human-friendly format when displaying dates. - After calling this tool, you MUST include the automations widget in your response using this exact format: <pdlt-widget data-type="padlet_automations" /> - Example response: "I've created a freeze automation scheduled for tomorrow at 9AM. <pdlt-widget data-type="padlet_automations" />"
create_automation
Create a new SAML connection for a library. - Purpose: Set up SAML SSO by providing IdP metadata URL and attribute mappings. - What this tool returns: { success: true, samlConnection: {...} } with the created connection. Guidance for use: - Requires user to be a library admin. - Only works for school libraries. - Fetches and parses SAML metadata from the provided IdP metadata URL. - Email and name attributes are required (cannot be empty). - Role attribute is optional (enables teacher role upgrade when set).
create_library_saml_connection
Create a new blank padlet that can then be populated using other tools. - Purpose: Create a new empty padlet from scratch. - What this tool returns: { success: true, padlet: { id, title, description, format, url } } with the new padlet's details. Guidance for use: - Creates a blank padlet with default settings (private, no posts). - The padlet_id returned can be used with update_padlet_settings, etc. - Optional parameters: title (uses smart default based on format if not provided), description, format (grid, stream, timeline_v2, matrix, shelf, table, free, map, timeline, whiteboard, columns). - After creation, use other tools to configure settings, add posts, sections, etc. - If format is not specified, defaults to "grid".
create_padlet
Creates a Padlet Arcade activity. - Purpose: creates a Padlet Arcade activity for the user. - What this tool returns: { success: true, activity_name: ..., activity_url: ... } on success; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }. Guidance for use: - Use this tool if the user specifically requests it, or if the request is generic but the user may benefit from one of these tools. - Use mainly in educational environments. - After calling this tool, you MUST include the Padlet Arcade activity widget in your response using this exact format, replacing ID and URL with the actual values: <pdlt-widget data-type="padlet_arcade_activity" data-activity-name="ID" data-activity-url="URL" /> - Example response: "I have generated a multiple choice activity for you! <pdlt-widget data-type="padlet_arcade_activity" data-activity-name="multiple-choice-quiz" data-activity-url="https://..." />" - Keep your message concise (1-2 sentences) and always include the widget. - Provide tool_generation with tool_name and tool_args. - tool_name and tool_args must match a supported tool. Supported tools: - multiple-choice-quiz: Generate a multiple choice quiz where students select the correct answer from several options. args schema: {"required":["grade","topic","details"],"properties":{"grade":{"type":"string","description":"The grade level which the interactive activity is directed to."},"topic":{"type":"string","description":"The topic the activity is about."},"details":{"type":"string","description":"Additional instructions for the activity generation, like categories to use or number of items."}}} - memory-tiles: Generate a memory matching game where students flip tiles to find matching pairs of related concepts. args schema: {"required":["grade","topic","details"],"properties":{"grade":{"type":"string","description":"The grade level which the interactive activity is directed to."},"topic":{"type":"string","description":"The topic the activity is about."},"details":{"type":"string","description":"Additional instructions for the activity generation, like categories to use or number of items."}}} - flashcards: Generate a set of flashcards for studying and memorization with terms on one side and definitions on the other. args schema: {"required":["grade","topic","details"],"properties":{"grade":{"type":"string","description":"The grade level which the interactive activity is directed to."},"topic":{"type":"string","description":"The topic the activity is about."},"details":{"type":"string","description":"Additional instructions for the activity generation, like categories to use or number of items."}}} - matching: Generate a matching activity where students connect related items from two columns. args schema: {"required":["grade","topic","details"],"properties":{"grade":{"type":"string","description":"The grade level which the interactive activity is directed to."},"topic":{"type":"string","description":"The topic the activity is about."},"details":{"type":"string","description":"Additional instructions for the activity generation, like categories to use or number of items."}}} - fill-in-the-blank: Generate a fill-in-the-blank activity where students complete sentences or passages with missing words. args schema: {"required":["grade","topic","details"],"properties":{"grade":{"type":"string","description":"The grade level which the interactive activity is directed to."},"topic":{"type":"string","description":"The topic the activity is about."},"details":{"type":"string","description":"Additional instructions for the activity generation, like categories to use or number of items."}}} - sorting: Generate a sorting activity where students categorize items into different groups or categories. args schema: {"required":["grade","topic","details"],"properties":{"grade":{"type":"string","description":"The grade level which the interactive activity is directed to."},"topic":{"type":"string","description":"The topic the activity is about."},"details":{"type":"string","description":"Additional instructions for the activity generation, like categories to use or number of items."}}} - sequencing: Generate a sequencing activity where students arrange items in the correct order (chronological, procedural, etc.). args schema: {"required":["grade","topic","details"],"properties":{"grade":{"type":"string","description":"The grade level which the interactive activity is directed to."},"topic":{"type":"string","description":"The topic the activity is about."},"details":{"type":"string","description":"Additional instructions for the activity generation, like categories to use or number of items."}}}
create_padlet_arcade_activity
Create a connection (arrow/line) between two posts on a Freeform padlet. - Purpose: Draw a directional connection from one post to another. - What this tool returns: { success: true, connection_id: "123" } on success; otherwise { success: false, message: "..." }. - Only works on Freeform format padlets. - Use get_padlet_content to get post IDs before calling this tool. - `label` is optional (max 50 characters). Omit it if no label is needed. - You cannot connect a post to itself. - Duplicate connections (same from_post_id and to_post_id) are not allowed.
create_post_connection
Create new posts on a padlet. - Purpose: Add new posts to a padlet. - What this tool returns: { success: true, created_post_ids: { "new_1": "123", "new_2": "456" } } on successful creation, mapping temporary "new_" ids to real post ids; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }. Guidance for use: - CREATING new posts: You MUST use a string id with "new_" prefix (e.g. "new_1", "new_abc"). Never use integer ids for new items. - Requires write permission on the padlet. - If setting an attachment, you must either: 1. include both `attachment_type` AND `attachment_search` 2. include `attachment` as a valid URL. - Poll and other attachments using `attachment` and `attachment_search` fields are mutually exclusive. Do not include both in the same post. - If the padlet's settings use the "map" format, you MUST include location_data with latitude, longitude, and location_name. - Create posts under a section: - Create the section first using the update_section tool, or make sure the section already exists. - The update_section tool returns `created_section_ids` mapping temporary "new_" ids to real section ids (e.g. { "new_1": "123" }). Use these real ids as section_id when creating posts. - If you don't have the real section id, use the get_padlet_content tool to look it up. - NEVER use "new_" prefixed ids as section_id — they will be rejected. - Post color: - Only the following colors are allowed: red, orange, green, blue, purple. There are a few exceptions: - If 'yellow' is provided, use 'orange' instead. - "white" and "black" values are only allowed if and only if the padlet color scheme is "light" and "dark" respectively. The counterpart color should not be allowed and be rejected instead. Use the padlet_settings -> color_scheme field to get the padlet color scheme with the get_padlet_content tool.
create_posts
- Purpose: Delete multiple automations on a padlet. - What this tool returns: { success: true } on successful automation deletions; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }. Guidance for use: - Do not inform the user about timezone handling. You must use a human-friendly format when displaying dates. - After calling this tool, you MUST include the automations widget in your response using this exact format: <pdlt-widget data-type="padlet_automations" /> - Example response: "I've deleted the freeze automation scheduled for tomorrow at 9AM. <pdlt-widget data-type="padlet_automations" />"
delete_automations
Delete a comment from a post given the comment id. - Purpose: Delete a comment from a post given the comment id. - What this tool returns: { success: true } on successful comment deletion; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }. Guidance for use: - comment_id should be a string that represents an integer ID, i.e. only contain digits. If you don't know the integer ID, try getting the padlet's content first. - This action is irreversible. Always inform the user that deletion is permanent and confirm before proceeding.
delete_comment
Delete custom fields from a padlet. - Purpose: Permanently delete one or more custom fields by their field_id. - What this tool returns: { success: true } on successful deletion; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }. Guidance for use: - Get field IDs from the padlet's current settings via the get_padlet_content tool. - This action is irreversible. Always inform the user that deletion is permanent and confirm before proceeding.
delete_custom_fields
Delete a connection between two posts on a Freeform padlet. - Purpose: Remove an existing directional connection (arrow/line) between two posts. - What this tool returns: { success: true } on success; otherwise { success: false, message: "..." }. - Only works on Freeform format padlets. - Use get_padlet_content to get connection IDs before calling this tool.
delete_post_connection
- Purpose: Freeze or unfreeze a padlet. - What this tool returns: { success: true } on successful freeze/unfreeze; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }. - When a padlet is frozen: - New posts cannot be added. - Existing posts cannot be edited or deleted. - Comments and reactions will be disabled. - Settings cannot be modified. Guidance for use: - Use only if the user has requested to freeze now. For scheduled freezes, use the "create_automation" tool.
freeze_padlet
Returns the current time (or an offset from it) in both ISO 8601 format and unix epoch seconds. - Purpose: Get the current real time in UTC, optionally offset by a number of seconds, for any time-based calculations. - What this tool returns: { success: true, iso8601: "...", timestamp: ... } with the time in ISO 8601 format and as a unix epoch integer. - Use offset_seconds to get a future or past time relative to now (e.g. 7200 for 2 hours from now, -3600 for 1 hour ago). - Use timezone to get the ISO 8601 time in a specific timezone.
get_time
Retrieves information about the currently authenticated user. Use this tool to get details about who is making the request. Returns user profile information including name, email, username, avatar, bio, role, and language preference.
get_current_user_info
Get approved email domains for a school library. - Purpose: Retrieve list of email domains allowed for automatic user registration. - What this tool returns: { success: true, approvedDomains: [...] } with domain list. Guidance for use: - Requires user to be at least a library admin. - Only works for school libraries. - Returns domains with approval status (approved or pending). - Each domain includes role assignment (admin, teacher, student).
get_library_approved_domains
Fetches attachment type settings for a library. Works with school and classroom libraries only. Returns the attachment type settings including: - modes: Object mapping attachment type to mode Valid modes: "default_on", "default_off", "disabled" Attachment types: padlet, upload, link, camera, video_recorder, ar_lenses_enabled, audio_recorder, screen_recorder, draw, poll, google_drive, microsoft_one_drive_picker, i_cant_draw, talk_for_me, photo_album, image_search, stickers, gif, youtube, spotify, web_search, location, three_d_object_search, document_scanner, sound_and_visual_effects, arcade, device_uploads
get_library_attachment_type_settings
Fetches content safety/moderation settings for a library. Works with school and classroom libraries only. Returns the content moderation settings including: - contentModerationMode: The default moderation mode for padlets Valid values: none, auto, students_only, all - moderationCategories: Array of category settings with name, enabled, and modifiable flags Categories: sexual, violence, bullying, drugs, alcohol, weapons, child_exploitation, child_safety, self_harm, profanity
get_library_content_safety
Get detailed information about a library including settings, integrations, and permissions. - Purpose: Retrieve comprehensive library data including LTI, rostering, Microsoft Teams, Google Classroom settings, and more. - What this tool returns: { success: true, library: {...} } with the full library object including all settings and configurations. Guidance for use: - Requires the user to be a member of the library with view permissions. - Returns full library details including bio, integrations (LTI, Google Classroom, Microsoft Teams, Google Workspace), rostering settings, membership counts, and billing information. - Use this tool when you need complete library information for a specific library the user has access to.
get_library_info
Get library invite links including URLs and enabled status for all roles. - Purpose: Retrieve invite links for a library to see which roles have active invite links. - What this tool returns: { success: true, invite_links: {...} } with invite link URLs and enabled flags for each role. Guidance for use: - Requires the user to have permission to invite members to the library. - Returns invite links and enabled status for applicable roles based on library type: - Team libraries: admin, maker, contributor - Classroom libraries: teacher, student - School libraries: admin, teacher, student - Empty string is returned for disabled invite links.
get_library_invite_links
Get OAuth login provider settings for a school library. - Purpose: Retrieve which OAuth providers are enabled (Google, Microsoft, Apple, Clever, ClassLink, password). - What this tool returns: { success: true, oauthSettings: {...} } with enabled providers and third-party IDs. Guidance for use: - Requires user to be a library admin. - Only works for school libraries (not team or classroom). - Returns list of OAuth providers with enabled status. - Includes Clever district ID and ClassLink tenant ID if configured.
get_library_oauth_settings
Get the onboarding flow progress for a library. - Purpose: Retrieve the current onboarding tasks and their completion status for a library. - What this tool returns: { success: true, onboarding_flow: {...} } with tasks showing false (not done) or timestamp (done). Guidance for use: - School libraries require at least admin role to access. - Non-school libraries (team/classroom) require owner role. - Tasks vary by library type: - School: connect_school_sso, add_admins, add_teachers_and_students - Non-school: customize_team_info, add_members, pick_plan, make_private_wall - School admins do not see the add_admins task (only owners do).
get_library_onboarding_flow
Fetches all permission settings for a library. Works with school, classroom, and team libraries. Returns the complete library settings including: - For school/classroom libraries: student and teacher permission settings - For team libraries: member permission settings The response includes all boolean permissions (e.g., canMakeWalls, canViewGallery) and V2 access control settings (e.g., allowVisitorAccess, listedSetting, defaultWallVisitorRole).
get_library_permissions
Get SAML connection settings for a library. - Purpose: Retrieve SAML IdP configuration including connection name, metadata URL, attribute mappings. - What this tool returns: { success: true, samlConnections: [...] } with all SAML connections. Guidance for use: - Requires user to be a library admin. - Works for school and team libraries. - Returns array of SAML connections (can have multiple). - Each connection includes IdP metadata URL, attribute mappings, SP entity ID.
get_library_saml_settings
- Purpose: Get the access settings for a padlet like student role, teacher role, visitor role, isListed (whether the padlet is shown on the dashboard), isPublished (whether the padlet is shown on user profile and web), if the padlet requires visitor to be a logged in user, the padlet's access password. Also return collaborators information. - What this tool returns: { success: true, access_settings: {...} } with complete access settings including collaborators and visitor role. Guidance for use: - ALWAYS use this tool to get the access settings and collaborators information of a padlet before making changes.
get_padlet_access_settings
- Purpose: get information about the automations on a padlet. - What this tool returns: { success: true, automations: [...] } on successful automation settings retrieval; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }. Guidance for use: - The scheduled_at timestamp is in UTC. You must convert them to the user's timezone when displaying them. - Do not inform the user about timezone handling. You must use a human-friendly format when displaying dates. - After calling this tool, you MUST include the automations widget in your response using this exact format: <pdlt-widget data-type="padlet_automations" /> - Example response: "You have a freeze automation scheduled for tomorrow at 9AM. <pdlt-widget data-type="padlet_automations" />"
get_padlet_automations
Get detailed content of a specific padlet including all posts, comments, sections, and settings. - Purpose: Retrieve the current state of a padlet before making updates, or fetch a padlet the user has pasted a URL for. - What this tool returns: { success: true, wall_url: "...", padlet: {...} } with complete padlet data including title, description, format, sections, and all posts with their content. Input: - `wall_url`: the URL of the padlet, e.g. https://padlet.com/foo/bar-a1b2c3. Required. Guidance for use: - Use this tool after list_padlets to understand the current content before making changes. - There is no id-based lookup. Take the URL from list_padlets or search_walls, from the `wall_url` a previous call returned, or from a link the user pasted. - The returned post_id and section_id values can be used in create_posts, update_posts, and update_section tools. - Posts are returned in the order they appear on the padlet. - Each post includes an `editable` field indicating whether the current user can edit that post. - Only returns the content if the current user has read access to the padlet.
get_padlet_content
- Purpose: Get the content settings of a padlet like content moderation mode and content (copy) protection setting. - What this tool returns: { success: true, content_settings: {...} } with complete content settings data including content moderation mode and content protection setting. Guidance for use: - Content moderation mode is to decide which posts and comments require approval. The "all" value may also be referred to as "manual" by users because it means all posts and comments require manual approval. - Content protection (also known as copy protection - use this term when talking to users) setting is to decide if the padlet's content can be remade, downloaded, and exported. - is_remakeable is to decide if the padlet's content can be remade.
get_padlet_content_settings
- Purpose: Get all whiteboard/sandbox tool settings including which toolbar tools are enabled/disabled, AR lenses, and video/screen recording length limit. - What this tool returns: { success: true, whiteboard_tool_settings: {...}, ar_lenses_enabled: true/false, video_length_limit: <seconds or nil> } Guidance for use: - whiteboard_tool_settings shows which toolbar tools are enabled or disabled. It is a hash of tool_id => boolean (true = enabled, false = disabled) - ar_lenses_enabled indicates whether augmented reality filters are available in the video recorder. - video_length_limit is the maximum recording length in seconds for video and screen recorder (nil means using the default/max limit). - Use update_whiteboard_tool_settings to change any of these settings.
get_whiteboard_tool_settings
Grade posts on a padlet by saving a numeric score per post, and optionally an overall written comment per student. - Purpose: Create or update Score grades for one or more posts. Optionally save one written feedback comment per student. - What this tool returns: { success: true, graded_count: N } on success; { success: false, message: "..." } on failure. - You must call get_padlet_content first to read the posts before grading. - Only wall builders and admins can grade posts. - Scores must be integers between 0 and the wall's max_score. Read max_score from padlet_settings -> grading_settings -> max_score in the get_padlet_content result. - For student_comments: a student may have multiple posts — provide ONE comment per student using any one of their post_ids to identify them. - Do NOT report back to the user asking for confirmation — just grade immediately.
grade_posts
Invite an email as a padlet collaborator. - Purpose: Invite an email as a padlet collaborator. - What this tool returns: { success: true } on successful invitation; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }.
invite_email_as_padlet_collaborator
Lists the libraries the current user is a member of, with the user's role in each. - Purpose: resolve which library the user means, so the other library tools can be called with its id. - What this tool returns: { success: true, libraries: [{ id, name, type, role }] }. Guidance for use: - Call this first whenever a request refers to a library by name or in prose ("my school", "the team library") instead of by id. - type is one of solo, classroom, school, team. A solo library is the user's own personal library. - role is the user's role in that library, e.g. owner, admin, teacher, student, maker, contributor. - Every library the user is an active member of is listed, whatever their role. Check `role` before assuming they can administer it. - Deactivated memberships and suspended libraries are left out, so an empty list means the user has no active membership anywhere rather than that the lookup failed.
list_libraries
List padlets owned by the current user, ordered by most recently updated. - Purpose: Discover what padlets the user owns. - What this tool returns: { success: true, padlets: [...] } with an array of padlet objects containing id, title, description, format, url, and timestamps. Guidance for use: - Use this tool to find which padlets the user owns before performing operations. - Pass the returned url to get_padlet_content, and the returned id to the tools that take one. - Results are ordered by most recently updated (updated_at descending). - Only returns active padlets (excludes hidden, archived, suspended, or deleted padlets).
list_padlets
Pin/unpin a post to the top of the padlet/section it belongs to. - Purpose: Pin/unpin a post to the top of the padlet/section it belongs to. - What this tool returns: { success: true } on successful pin/unpin; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }. Guidance for use: - post_id should be an integer ID. It should be available through get_padlet_content tool. Things like new_1, new_abc are not valid post ids. - If a post was newly created using ID starting with "new_", the number part of that ID is NOT the correct post id. ALWAYS use get_padlet_content tool to get the correct post id.
pin_post
Remake (clone) a padlet to create a copy with configurable options. - Purpose: Create a copy of an existing padlet with optional content copying. - What this tool returns: On success, returns { success: true, wall_url: "..." } with the URL of the newly created padlet. On failure, returns { success: false, message: "..." }. Guidance for use: - Use this tool when the user wants to create a copy, clone, duplicate, or remake of their padlet. - The user must have permission to remake the padlet (they must be able to view it and the padlet must allow remaking). - By default, posts/objects and wallpaper are copied. Comments and reactions are not copied by default. - IMPORTANT: Only call this tool ONCE per user request. Even if the user asks to remake multiple times, only remake once. Inform them that you can only remake one padlet at a time. - The remake is performed synchronously. It may take a moment for large padlets. - Communication: The user cannot see tool call results directly. After calling this function, you MUST include the wall_url in your response using markdown link format: [Click here to view your remade padlet](wall_url). Admin-only options: - with_original_authors and with_same_privacy are admin-only options that require the user to be an admin of the padlet. - If a non-admin user tries to use these options, the tool will return an error.
remake_padlet
Remove approved email domains from a school library. - Purpose: Remove one or more approved domains from a school library. - What this tool returns: { success: true, removedCount: N, removedDomains: [...] } or error details. Guidance for use: - Requires user to be a library admin. - Only works for school libraries. - Accepts domain names (strings), not domain IDs. - Domain matching is case insensitive. - If any domain is not found, the operation fails and returns an error listing those domains. - Removes domains regardless of their approval status (pending or approved).
remove_library_approved_domains
Remove pending email invitations from a library. - Purpose: Remove one or more pending email invitations that have not yet been accepted. - What this tool returns: { success: true, removedCount: N } or error details including emails that were not found. Guidance for use: - Requires permission to manage members in the library. - Accepts multiple emails to remove in a single request. - Email matching is case insensitive. - If some emails are not found as pending invites, the operation will return an error listing those emails. - Only removes pending invitations (stored in LibraryProp), not existing library memberships.
remove_library_email_invites
Restore soft-deleted posts and/or sections on a padlet. - Purpose: Restore posts or sections that were previously deleted (e.g. by the user or by a prior tool call). Deletions are soft-deleted, so they can be restored. - What this tool returns: { success: true } on successful restore; otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }. Guidance for use: - Restoring sections requires admin permission on the padlet. Restoring posts requires edit permission on each post. - Provide post_ids to restore specific posts, section_ids to restore specific sections, or both. At least one non-empty list is required. - When restoring a section AND its posts, provide BOTH the section_ids AND the post_ids. Posts are NOT automatically restored when a section is restored. Use the deleted_post_ids returned by the update_section or update_posts tool to know which post_ids to include. - When restoring only posts (not a section), provide post_ids. - Only soft-deleted items can be restored. If an id is not found or was not soft-deleted, it is skipped; others are still restored. - Deleted posts and sections are permanently removed after 24 hours; restore must be requested within that window. - Always use the exact deleted_post_ids and deleted_section_ids returned by update_section or update_posts tool call. Never guess or fabricate IDs. - Use get_padlet_content to see current state; soft-deleted items are not returned there. The user may ask to "undo" a deletion or "restore" something they or the assistant just deleted.
restore_posts_and_sections
Search for padlets in the user's account using semantic search. - Purpose: Find relevant padlets based on a search query. This allows discovering padlets by their content, not just by browsing recent padlets. - What this tool returns: { success: true, results: [...] } with an array of matching padlets containing id, title, description, url, and other relevant information. Guidance for use: - Use this tool to find specific padlets when the user mentions content or topics (e.g., "my project padlet", "padlet about climate change"). - The search uses semantic/vector search, so it understands meaning, not just exact keyword matches. - Results are ranked by relevance to the search query. - Only returns padlets the current user has access to (owned by them or shared with them). - Pass a result's url to get_padlet_content, and its id to the tools that take one. - If no results are found, consider using list_padlets to browse recent padlets instead. Results are nearest matches, not exact ones: - This tool always returns the closest padlets it can find. It does NOT return an empty list just because the padlet the user asked for does not exist, so a non-empty response is not evidence that the padlet was found. - Before using a result, check that its title and description actually match what the user asked for. If none of them do, tell the user you could not find that padlet — never silently substitute the nearest result. - Never write to, share, invite anyone to, grade, freeze, or delete anything on a result whose title does not clearly match the user's request. Confirm which padlet they meant first. - A padlet created moments ago may not be indexed yet. When the user refers to a padlet from earlier in this conversation, reuse its id directly instead of searching for it, and use list_padlets for recently created or updated padlets.
search_walls
Send email invitations to users to join a library with specific roles. - Purpose: Invite multiple users to a library via email in batch. - What this tool returns: { success: true, duplicate_user_count: N, invited_count: M } or error details. Guidance for use: - Requires permission to invite members or manage members in the library. - Supports batch invites (up to 100,000 users). - Valid roles depend on library type: - Educational libraries (classroom/school): admin, teacher, student - Team libraries: admin, maker, contributor - Existing Padlet users are added immediately as library members. - Non-registered users receive email invitations with reminders at 7, 30, and 60 days. - Duplicate users (already members with same role or already invited) are skipped and counted. - Invalid emails or roles will cause the entire batch to fail with detailed error messages.
send_library_email_invites
Start uploading a file from the local filesystem so it can be attached to a padlet. Only call this if you can both read a local file and send an HTTP PUT (with `curl`, for instance). If you cannot — no filesystem, or no way to make an HTTP request — do not call this tool: pass the file's public URL straight to the `attachment` field of create_posts or update_posts. Anything already on the public web never needs this tool at all. How it works: 1. Call this tool with the file's real size in bytes and its content type. 2. PUT the raw bytes to the `upload_url` you get back. One request, no headers, no form encoding — for example `curl -T /path/to/file "<upload_url>"`. The body must be exactly `size_bytes` bytes long. 3. Call complete_attachment_upload with the same `wall_id` and the `uploaded_url` from this tool. Nothing reaches the padlet until you do, and the file is verified at that point — a file whose bytes do not match the content type you declared is rejected and deleted. 4. Pass the URL complete_attachment_upload returns as a post's `attachment` field. Returns { success: true, upload_url: "...", uploaded_url: "...", expires_at: "..." }, or { success: false, error_code: "...", message: "..." }.
start_attachment_upload
Sync all grades for a padlet to the connected LMS (e.g. Canvas, Schoology) via LTI passback. - Purpose: Push all existing post grades to the LMS gradebook. - What this tool returns: { success: true } on success; { success: false, message: "..." } on failure. - Only available when LMS passback is enabled on the padlet. - Only wall builders and admins can trigger a sync. - The sync may be asynchronous for padlets with many students — in that case the result will indicate async: true and the LMS will update shortly. - Do NOT report back to the user asking for confirmation — just sync immediately.
sync_grades_to_lms
- Purpose: Enable, disable, or configure the autoremake link on a padlet. Autoremake links allow others to create their own copy of the padlet via a special link. - What this tool returns: On enable/update success, { success: true, remake_link_url: "<url>" }. On disable success, { success: true }. Otherwise a hash with success set to false and an optional message, e.g. { success: false, message: "..." }. Guidance for use: - Use this tool when the user wants to let others remake (copy) their padlet. - Only set the parameters you want to change. Omit parameters to keep their current values. - For board padlets: use copy_posts and use_original_posts_authorship to control what gets copied. - For whiteboard padlets: use copy_objects instead (copy_posts and use_original_posts_authorship are ignored). - After calling this tool with enable: true, you MUST include the autoremake link widget in your response using this exact format, replacing REMAKE_LINK_URL with the remake_link_url from the tool result: <pdlt-widget data-type="padlet_autoremake_link" data-url="REMAKE_LINK_URL" /> - Example response: "I've enabled the autoremake link for your padlet. <pdlt-widget data-type="padlet_autoremake_link" data-url="https://padlet.com/remake/..." />" - Keep your message concise (1-2 sentences) and always include the widget.
update_auto_remake_settings
- Purpose: Enable breakout room links on a padlet. Breakout rooms create individual links to each section, enabling collaborative group work. - What this tool returns: - { success: true } when breakout rooms are enabled successfully or already enabled. - { success: false, user_action_required: true, ... } when the padlet needs a layout change first. The message contains a breakout rooms widget that lets the user pick a compatible layout. - { success: false, message: "..." } on error. Guidance for use: - Use this tool when the user wants to create separate links for each section of their padlet so different groups can work in different sections. - After calling this tool successfully, you MUST include the breakout rooms widget in your response using this exact format: <pdlt-widget data-type="padlet_breakout_rooms" /> - Example response: "I've enabled breakout rooms for your padlet. <pdlt-widget data-type="padlet_breakout_rooms" />" - When this tool returns user_action_required, include the message content (which contains a breakout rooms widget with layout selection) in your response verbatim. - Keep your message concise (1-2 sentences) and always include the widget.
update_breakout_settings
Updates a single attachment type setting for a library. Works with school and classroom libraries only. CRITICAL: The API only accepts exactly 1 attachment type per request. VALID ATTACHMENT TYPES: padlet, upload, link, camera, video_recorder, ar_lenses_enabled, audio_recorder, screen_recorder, draw, poll, google_drive, microsoft_one_drive_picker, i_cant_draw, talk_for_me, photo_album, image_search, stickers, gif, youtube, spotify, web_search, location, three_d_object_search, document_scanner, sound_and_visual_effects, arcade, device_uploads VALID MODES: default_on, default_off, disabled SPECIAL BEHAVIOR: - photo_album is automatically disabled if ALL image picker sources are disabled (upload, link, camera, draw, i_cant_draw, image_search, gif) Examples: - Disable video recorder: attachment_type="video_recorder", mode="disabled" - Set upload to default off: attachment_type="upload", mode="default_off"
update_library_attachment_type
Updates content safety settings for a library. Works with school and classroom libraries only. CRITICAL: You can update EITHER the moderation mode OR moderation categories per request, not both. VALID CONTENT MODERATION MODES: none, auto, students_only, all VALID MODERATION CATEGORIES (all boolean, enable/disable): sexual, violence, bullying, drugs, alcohol, weapons, child_exploitation, self_harm, profanity NOTE: "child_safety" is NOT modifiable - it is always enabled Examples: - Update moderation mode: content_moderation_mode="auto" - Disable a category: moderation_category="sexual", category_enabled=false
update_library_content_safety
How do I improve a ChatGPT Plugin's discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.