UserVoice MCP by usefulapi
Search UserVoice ideas, feedback and users; post ideas, comments, notes and status updates.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (1)
- LOWin uservoice_list_feedback_records
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"uservoice": {
"url": "https://uservoice.usefulapi.io/mcp"
}
}
}Remote-Endpunkte
https://uservoice.usefulapi.io/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (21)
🟢uservoice_get_account
The UserVoice account (subdomain) these credentials belong to: id, name, default forum and settings. GET /api/v2/admin/subdomains/current.
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢uservoice_list_forums(open, sort, per_page, cursor, page)
List the feedback forums (idea portals) with name, open/private state and suggestion counts. Use a forum id to filter or create suggestions. GET /api/v2/admin/forums.
Eingabe-Schema
{
"type": "object",
"properties": {
"open": {
"description": "Only open (true) or closed (false) forums.",
"type": "boolean"
},
"sort": {
"description": "Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count.",
"type": "string",
"pattern": "^-?[a-z][a-z0-9_.]{0,63}$"
},
"per_page": {
"default": 20,
"description": "Records per page (1-100, default 20).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"description": "pagination.next_cursor from the previous page (same sort). Preferred over page.",
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^[\\x21-\\x7e]+$"
},
"page": {
"description": "Page number (1-based), when no cursor is used.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢uservoice_list_categories(forum_ids, sort, per_page, cursor, page)
List suggestion categories, optionally only those of some forums. GET /api/v2/admin/categories.
Eingabe-Schema
{
"type": "object",
"properties": {
"forum_ids": {
"description": "Only categories of these forums.",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"sort": {
"description": "Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count.",
"type": "string",
"pattern": "^-?[a-z][a-z0-9_.]{0,63}$"
},
"per_page": {
"default": 20,
"description": "Records per page (1-100, default 20).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"description": "pagination.next_cursor from the previous page (same sort). Preferred over page.",
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^[\\x21-\\x7e]+$"
},
"page": {
"description": "Page number (1-based), when no cursor is used.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢uservoice_list_statuses(sort, per_page, cursor, page)
List the public suggestion statuses (e.g. under review, planned, started, completed, declined) with ids, colors and open/closed flag. Use the ids for filters and status updates. GET /api/v2/admin/statuses.
Eingabe-Schema
{
"type": "object",
"properties": {
"sort": {
"description": "Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count.",
"type": "string",
"pattern": "^-?[a-z][a-z0-9_.]{0,63}$"
},
"per_page": {
"default": 20,
"description": "Records per page (1-100, default 20).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"description": "pagination.next_cursor from the previous page (same sort). Preferred over page.",
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^[\\x21-\\x7e]+$"
},
"page": {
"description": "Page number (1-based), when no cursor is used.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢uservoice_list_labels(query, sort, per_page, cursor, page)
List or search the labels used to organize suggestions. GET /api/v2/admin/labels.
Eingabe-Schema
{
"type": "object",
"properties": {
"query": {
"description": "Search text in the label name.",
"type": "string",
"minLength": 1,
"maxLength": 500
},
"sort": {
"description": "Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count.",
"type": "string",
"pattern": "^-?[a-z][a-z0-9_.]{0,63}$"
},
"per_page": {
"default": 20,
"description": "Records per page (1-100, default 20).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"description": "pagination.next_cursor from the previous page (same sort). Preferred over page.",
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^[\\x21-\\x7e]+$"
},
"page": {
"description": "Page number (1-based), when no cursor is used.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢uservoice_list_suggestions(query, forum_ids, category_ids, status_ids, no_status, ...)
List or search suggestions (ideas) with title, body, state, vote/supporter counts, revenue of supporters and links to forum, category, status and labels. Filter by text, forum, category, status, state, label or created/updated time. GET /api/v2/admin/suggestions.
Eingabe-Schema
{
"type": "object",
"properties": {
"query": {
"description": "Search text in the suggestion title or description.",
"type": "string",
"minLength": 1,
"maxLength": 500
},
"forum_ids": {
"description": "Only suggestions in these forums.",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"category_ids": {
"description": "Only suggestions in these categories.",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"status_ids": {
"description": "Only suggestions with these public statuses (see uservoice_list_statuses).",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"no_status": {
"description": "Only suggestions without a public status.",
"type": "boolean"
},
"label_ids": {
"description": "Only suggestions with these labels.",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"state": {
"description": "Only these states, e.g. [\"approved\",\"published\"] or [\"open\"].",
"minItems": 1,
"maxItems": 12,
"type": "array",
"items": {
"type": "string",
"enum": [
"published",
"approved",
"closed",
"for_review",
"deleted",
"merged",
"spam",
"new",
"filtered",
"open",
"active",
"inactive"
]
}
},
"created_after": {
"description": "Only suggestions created after this time.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$"
},
"created_before": {
"description": "Only suggestions created before this time.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$"
},
"updated_after": {
"description": "Only records updated after this time.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$"
},
"updated_before": {
"description": "Only records updated before this time.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$"
},
"includes": {
"description": "Related records to sideload into `included`.",
"minItems": 1,
"maxItems": 8,
"type": "array",
"items": {
"type": "string",
"enum": [
"forums",
"categories",
"statuses",
"labels",
"users",
"features",
"status_updates",
"supporter_messages"
]
}
},
"sort": {
"description": "Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count.",
"type": "string",
"pattern": "^-?[a-z][a-z0-9_.]{0,63}$"
},
"per_page": {
"default": 20,
"description": "Records per page (1-100, default 20).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"description": "pagination.next_cursor from the previous page (same sort). Preferred over page.",
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^[\\x21-\\x7e]+$"
},
"page": {
"description": "Page number (1-based), when no cursor is used.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢uservoice_get_suggestion(suggestion_id, includes)
One suggestion (idea) by id, optionally with related records (forum, category, status, labels, users, status updates). GET /api/v2/admin/suggestions/{id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"suggestion_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "UserVoice suggestion id."
},
"includes": {
"description": "Related records to sideload into `included`.",
"minItems": 1,
"maxItems": 8,
"type": "array",
"items": {
"type": "string",
"enum": [
"forums",
"categories",
"statuses",
"labels",
"users",
"features",
"status_updates",
"supporter_messages"
]
}
}
},
"required": [
"suggestion_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢uservoice_list_comments(suggestion_ids, state, updated_after, updated_before, sort, ...)
List public comments, optionally only those on some suggestions or in some moderation states. GET /api/v2/admin/comments.
Eingabe-Schema
{
"type": "object",
"properties": {
"suggestion_ids": {
"description": "Only comments on these suggestions.",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"state": {
"description": "Only these moderation states.",
"minItems": 1,
"maxItems": 7,
"type": "array",
"items": {
"type": "string",
"enum": [
"published",
"approved",
"for_review",
"deleted",
"spam",
"new",
"filtered"
]
}
},
"updated_after": {
"description": "Only records updated after this time.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$"
},
"updated_before": {
"description": "Only records updated before this time.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$"
},
"sort": {
"description": "Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count.",
"type": "string",
"pattern": "^-?[a-z][a-z0-9_.]{0,63}$"
},
"per_page": {
"default": 20,
"description": "Records per page (1-100, default 20).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"description": "pagination.next_cursor from the previous page (same sort). Preferred over page.",
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^[\\x21-\\x7e]+$"
},
"page": {
"description": "Page number (1-based), when no cursor is used.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢uservoice_list_notes(suggestion_id, updated_after, updated_before, sort, per_page, ...)
List internal (admin-only) notes, optionally only those on one suggestion. GET /api/v2/admin/notes.
Eingabe-Schema
{
"type": "object",
"properties": {
"suggestion_id": {
"description": "Only notes on this suggestion.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"updated_after": {
"description": "Only records updated after this time.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$"
},
"updated_before": {
"description": "Only records updated before this time.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$"
},
"sort": {
"description": "Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count.",
"type": "string",
"pattern": "^-?[a-z][a-z0-9_.]{0,63}$"
},
"per_page": {
"default": 20,
"description": "Records per page (1-100, default 20).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"description": "pagination.next_cursor from the previous page (same sort). Preferred over page.",
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^[\\x21-\\x7e]+$"
},
"page": {
"description": "Page number (1-based), when no cursor is used.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢uservoice_list_status_updates(suggestion_ids, updated_after, updated_before, sort, per_page, ...)
List the public status updates posted on suggestions (message, how many supporters were emailed, opens/clicks, reactions). GET /api/v2/admin/status_updates.
Eingabe-Schema
{
"type": "object",
"properties": {
"suggestion_ids": {
"description": "Only status updates of these suggestions.",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"updated_after": {
"description": "Only records updated after this time.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$"
},
"updated_before": {
"description": "Only records updated before this time.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$"
},
"sort": {
"description": "Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count.",
"type": "string",
"pattern": "^-?[a-z][a-z0-9_.]{0,63}$"
},
"per_page": {
"default": 20,
"description": "Records per page (1-100, default 20).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"description": "pagination.next_cursor from the previous page (same sort). Preferred over page.",
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^[\\x21-\\x7e]+$"
},
"page": {
"description": "Page number (1-based), when no cursor is used.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢uservoice_list_supporters(suggestion_ids, user_ids, forum_ids, updated_after, updated_before, ...)
List supporters (voters) of suggestions: who supports what, how (channel), importance and subscription. Filter by suggestion, user or forum. GET /api/v2/admin/supporters.
Eingabe-Schema
{
"type": "object",
"properties": {
"suggestion_ids": {
"description": "Only supporters of these suggestions.",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"user_ids": {
"description": "Only these users' support.",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"forum_ids": {
"description": "Only support in these forums.",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"updated_after": {
"description": "Only records updated after this time.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$"
},
"updated_before": {
"description": "Only records updated before this time.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$"
},
"sort": {
"description": "Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count.",
"type": "string",
"pattern": "^-?[a-z][a-z0-9_.]{0,63}$"
},
"per_page": {
"default": 20,
"description": "Records per page (1-100, default 20).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"description": "pagination.next_cursor from the previous page (same sort). Preferred over page.",
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^[\\x21-\\x7e]+$"
},
"page": {
"description": "Page number (1-based), when no cursor is used.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢uservoice_list_feedback_records(suggestion_ids, user_ids, updated_after, updated_before, sort, ...)
List captured feedback (from the admin console, widget, Zendesk, Salesforce, Slack, API ...), optionally only that linked to some suggestions or users. GET /api/v2/admin/feedback_records.
Eingabe-Schema
{
"type": "object",
"properties": {
"suggestion_ids": {
"description": "Only feedback linked to these suggestions.",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"user_ids": {
"description": "Only feedback from these users.",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"updated_after": {
"description": "Only records updated after this time.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$"
},
"updated_before": {
"description": "Only records updated before this time.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,6})?)?(Z|[+-]\\d{2}:?\\d{2})?)?$"
},
"sort": {
"description": "Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count.",
"type": "string",
"pattern": "^-?[a-z][a-z0-9_.]{0,63}$"
},
"per_page": {
"default": 20,
"description": "Records per page (1-100, default 20).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"description": "pagination.next_cursor from the previous page (same sort). Preferred over page.",
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^[\\x21-\\x7e]+$"
},
"page": {
"description": "Page number (1-based), when no cursor is used.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢uservoice_list_features(query, suggestion_ids, product_area_ids, sort, per_page, ...)
List product features (the roadmap items suggestions are linked to) with suggestion counts and supporter revenue. Filter by text, linked suggestion or product area. GET /api/v2/admin/features.
Eingabe-Schema
{
"type": "object",
"properties": {
"query": {
"description": "Search text in the feature name.",
"type": "string",
"minLength": 1,
"maxLength": 500
},
"suggestion_ids": {
"description": "Only features linked to these suggestions.",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"product_area_ids": {
"description": "Only features in these product areas.",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"sort": {
"description": "Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count.",
"type": "string",
"pattern": "^-?[a-z][a-z0-9_.]{0,63}$"
},
"per_page": {
"default": 20,
"description": "Records per page (1-100, default 20).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"description": "pagination.next_cursor from the previous page (same sort). Preferred over page.",
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^[\\x21-\\x7e]+$"
},
"page": {
"description": "Page number (1-based), when no cursor is used.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢uservoice_list_users(query, email_addresses, suggestion_ids, association, sort, ...)
List or search end users and admins (name, email, satisfaction score, supported suggestions count). Filter by text, email address or supported suggestion. GET /api/v2/admin/users.
Eingabe-Schema
{
"type": "object",
"properties": {
"query": {
"description": "Search text (name or email).",
"type": "string",
"minLength": 1,
"maxLength": 500
},
"email_addresses": {
"description": "Only users with these email addresses.",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"maxLength": 254,
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
}
},
"suggestion_ids": {
"description": "Only users associated with these suggestions.",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"association": {
"description": "With suggestion_ids: how the users relate to them (supported = voted, contributed, engaged = any).",
"type": "string",
"enum": [
"supported",
"contributed",
"engaged"
]
},
"sort": {
"description": "Sort field, '-' prefix = descending, e.g. -created_at, -updated_at, -supporters_count.",
"type": "string",
"pattern": "^-?[a-z][a-z0-9_.]{0,63}$"
},
"per_page": {
"default": 20,
"description": "Records per page (1-100, default 20).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"description": "pagination.next_cursor from the previous page (same sort). Preferred over page.",
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^[\\x21-\\x7e]+$"
},
"page": {
"description": "Page number (1-based), when no cursor is used.",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢uservoice_get_user(user_id)
One user by id. GET /api/v2/admin/users/{id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"user_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "UserVoice user id."
}
},
"required": [
"user_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴uservoice_create_suggestion(forum_id, title, body, category_id, creator_email, ...)
WRITE: create a new suggestion (idea) in a forum, optionally in a category and on behalf of a user (by email; the user is created if new). It appears on the portal. POST /api/v2/admin/suggestions.
Eingabe-Schema
{
"type": "object",
"properties": {
"forum_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Forum to post in (see uservoice_list_forums)."
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 140,
"description": "Suggestion title (max 140 characters)."
},
"body": {
"description": "Description (plain text, max 10000 characters).",
"type": "string",
"minLength": 1,
"maxLength": 10000
},
"category_id": {
"description": "Category (see uservoice_list_categories).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"creator_email": {
"description": "Post on behalf of this user (default: the API client's admin).",
"type": "string",
"maxLength": 254,
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"creator_name": {
"description": "The creator's name, with creator_email.",
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"forum_id",
"title"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴uservoice_add_comment(suggestion_id, body, user_email, subscribe)
WRITE: post a PUBLIC comment on a suggestion, visible on the portal and emailed to its subscribers, optionally on behalf of a user (by email). For an admin-only remark use uservoice_add_note. POST /api/v2/admin/comments.
Eingabe-Schema
{
"type": "object",
"properties": {
"suggestion_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Suggestion to comment on."
},
"body": {
"type": "string",
"minLength": 1,
"maxLength": 10000,
"description": "Comment text (plain text)."
},
"user_email": {
"description": "Comment as this user (default: the API client's admin).",
"type": "string",
"maxLength": 254,
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"subscribe": {
"default": false,
"description": "Subscribe the commenter to the suggestion's updates (default false).",
"type": "boolean"
}
},
"required": [
"suggestion_id",
"body"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴uservoice_add_note(suggestion_id, body, parent_note_id)
WRITE: add an internal note (admins only, never shown to end users) to a suggestion, optionally as a reply to another note. POST /api/v2/admin/notes.
Eingabe-Schema
{
"type": "object",
"properties": {
"suggestion_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Suggestion to annotate."
},
"body": {
"type": "string",
"minLength": 1,
"maxLength": 10000,
"description": "Note text (plain text)."
},
"parent_note_id": {
"description": "Reply to this note.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"suggestion_id",
"body"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴uservoice_post_status_update(suggestion_id, status_id, body, notify_supporters)
WRITE: post a public status update on a suggestion, optionally changing its public status (see uservoice_list_statuses). Supporters are emailed ONLY when notify_supporters is true. POST /api/v2/admin/status_updates.
Eingabe-Schema
{
"type": "object",
"properties": {
"suggestion_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Suggestion to update."
},
"status_id": {
"description": "New public status for the suggestion.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"body": {
"description": "Message to show (plain text).",
"type": "string",
"minLength": 1,
"maxLength": 10000
},
"notify_supporters": {
"default": false,
"description": "Email the suggestion's supporters (default false).",
"type": "boolean"
}
},
"required": [
"suggestion_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴uservoice_add_feedback(body, user_email, suggestion_id, source_url)
WRITE: capture a piece of customer feedback (for example from a call or ticket), optionally from a user (by email) and linked to a suggestion, which adds that user's support. POST /api/v2/admin/feedback_records.
Eingabe-Schema
{
"type": "object",
"properties": {
"body": {
"type": "string",
"minLength": 1,
"maxLength": 10000,
"description": "The feedback text (plain text)."
},
"user_email": {
"description": "The customer who gave the feedback.",
"type": "string",
"maxLength": 254,
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"suggestion_id": {
"description": "Suggestion to link the feedback to.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"source_url": {
"description": "Where the feedback came from (a ticket or call URL).",
"type": "string",
"maxLength": 2000,
"format": "uri"
}
},
"required": [
"body"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴uservoice_attach_label(label_id, suggestion_id)
WRITE: attach a label to a suggestion (attaching it again changes nothing). POST /api/v2/admin/labels/attach.
Eingabe-Schema
{
"type": "object",
"properties": {
"label_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Label to attach (see uservoice_list_labels)."
},
"suggestion_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Suggestion to label."
}
},
"required": [
"label_id",
"suggestion_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Nachweis