Vision6 MCP by usefulapi
Read Vision6 lists, contacts, messages and reports; update contacts; send transactional email/SMS.
我该使用它吗
质量与安全性
发现(3)
- LOW在 vision6_get_message_sender_defaults 中
- LOW在 vision6_list_transactional_groups 中
- LOW在 vision6_get_transactional_group 中
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"vision6": {
"url": "https://vision6.usefulapi.io/mcp"
}
}
}远程端点
https://vision6.usefulapi.io/mcpstreamable-http它能做什么
工具清单
工具(23)
🟢vision6_get_account
Details of the API key this server uses: the scopes it grants (e.g. list.view, contact.create, message.edit, report.view) and its creation/expiry time. Use it to see why a request is refused. GET /v1/.
输入模式
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢vision6_list_lists(name, offset, limit)
List the account's contact lists with id, name, creation/modification time and notification settings. Filter by exact name. GET /lists.
输入模式
{
"type": "object",
"properties": {
"name": {
"description": "Exact list name.",
"type": "string",
"maxLength": 255
},
"offset": {
"description": "Skip this many results (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
},
"limit": {
"description": "Results per page, 1-1000 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 1000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢vision6_get_list(list_id)
One contact list by id. GET /lists/{list_id}.
输入模式
{
"type": "object",
"properties": {
"list_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"list_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢vision6_list_list_fields(list_id, offset, limit)
The fields (columns) of a contact list: label, type (email, mobile, text, dropdown, date ...), allowed values and whether they are mandatory. The lowercase underscore form of a label is the key used for contact values and filters. GET /lists/{list_id}/fields.
输入模式
{
"type": "object",
"properties": {
"list_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"offset": {
"description": "Skip this many results (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
},
"limit": {
"description": "Results per page, 1-1000 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 1000
}
},
"required": [
"list_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢vision6_list_folders(type, name, offset, limit)
List the account's folders (list folders and message folders) with id, name, type and size. Needed for the folder id when creating a list or message. GET /folders.
输入模式
{
"type": "object",
"properties": {
"type": {
"description": "Folder type, e.g. list or message.",
"type": "string",
"maxLength": 50
},
"name": {
"type": "string",
"maxLength": 255
},
"offset": {
"description": "Skip this many results (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
},
"limit": {
"description": "Results per page, 1-1000 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 1000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢vision6_list_contacts(list_id, email, mobile, is_active, created_since, ...)
List the contacts of one list: email, mobile, subscribed/blocked status, active flag, double opt-in and the list's custom fields. Filter by email, mobile, active flag, creation/modification time or any custom field (`filters`, e.g. {"city":"Brisbane"} or {"source:ne":"promo"}). GET /lists/{list_id}/contacts.
输入模式
{
"type": "object",
"properties": {
"list_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"email": {
"description": "Exact email address.",
"type": "string",
"maxLength": 254
},
"mobile": {
"description": "Exact mobile number (international format without +).",
"type": "string",
"maxLength": 30
},
"is_active": {
"type": "boolean"
},
"created_since": {
"description": "Only contacts created at or after this UTC timestamp.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
},
"modified_since": {
"description": "Only contacts changed at or after this UTC timestamp.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
},
"filters": {
"description": "Custom field filters: key = lowercase field key, optionally with :ne or :in (comma separated values), e.g. {\"state:in\":\"qld,nsw\"}.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string",
"maxLength": 500
}
},
"fields": {
"description": "Optional comma separated list of response fields to return, e.g. id,email.",
"type": "string",
"maxLength": 500,
"pattern": "^[A-Za-z0-9_,]+$"
},
"offset": {
"description": "Skip this many results (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
},
"limit": {
"description": "Results per page, 1-1000 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 1000
}
},
"required": [
"list_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢vision6_get_contact(list_id, contact_id, fields)
One contact by id within a list, with all fields. GET /lists/{list_id}/contacts/{contact_id}.
输入模式
{
"type": "object",
"properties": {
"list_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"contact_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"fields": {
"description": "Optional comma separated list of response fields to return, e.g. id,email.",
"type": "string",
"maxLength": 500,
"pattern": "^[A-Za-z0-9_,]+$"
}
},
"required": [
"list_id",
"contact_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢vision6_list_messages(type, name, subject, offset, limit)
List saved email and SMS messages (templates and campaigns) with id, type, name, subject and sender. Filter by type or exact name/subject. GET /messages.
输入模式
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"email",
"sms"
]
},
"name": {
"description": "Exact message name.",
"type": "string",
"maxLength": 255
},
"subject": {
"description": "Exact subject.",
"type": "string",
"maxLength": 998
},
"offset": {
"description": "Skip this many results (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
},
"limit": {
"description": "Results per page, 1-1000 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 1000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢vision6_get_message(message_id, include_content)
One message by id. With include_content=true the HTML and plain-text body is included. GET /messages/{message_id}.
输入模式
{
"type": "object",
"properties": {
"message_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"include_content": {
"description": "Also return the message body (body_html, body_text). Can be large.",
"type": "boolean"
}
},
"required": [
"message_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢vision6_get_message_sender_defaults
The account's default from name, from address and reply-to, applied to new email messages when you omit them. GET /message-sender-defaults.
输入模式
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢vision6_list_reports(message_id, message_type, is_test, created_since, fields, ...)
Send reports for campaigns, newest first: message name, type, sent, bounced, opened, unique clicks, unsubscribes, complaints, total recipients and last sent time. Filter by message, type, test sends or creation time. Click and domain breakdowns are only returned when requested via `fields`. GET /reports.
输入模式
{
"type": "object",
"properties": {
"message_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"message_type": {
"type": "string",
"enum": [
"email",
"sms"
]
},
"is_test": {
"description": "false = only real campaign sends, true = only test sends.",
"type": "boolean"
},
"created_since": {
"description": "Only reports created at or after this UTC timestamp.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
},
"fields": {
"description": "Optional comma separated list of response fields to return, e.g. id,email.",
"type": "string",
"maxLength": 500,
"pattern": "^[A-Za-z0-9_,]+$"
},
"offset": {
"description": "Skip this many results (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
},
"limit": {
"description": "Results per page, 1-1000 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 1000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢vision6_get_report(report_id, include_ab_test, include_social, fields)
One send report by id with all delivery and engagement counts, per-link click counts and recipient domain distribution. Optionally includes A/B test results and social click/share statistics. GET /reports/{report_id}.
输入模式
{
"type": "object",
"properties": {
"report_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"include_ab_test": {
"description": "Include A/B test variant statistics (only for A/B test reports).",
"type": "boolean"
},
"include_social": {
"description": "Include Facebook/Twitter/LinkedIn click and share statistics.",
"type": "boolean"
},
"fields": {
"description": "Optional comma separated list of response fields to return, e.g. id,email.",
"type": "string",
"maxLength": 500,
"pattern": "^[A-Za-z0-9_,]+$"
}
},
"required": [
"report_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢vision6_list_sent_contacts(message_id, report_id, list_id, contact_id, open_type, ...)
The contacts one message was sent to, with send time, first/last open time and open type (html, text, sms or not_opened). Use it to see who opened a campaign. GET /messages/{message_id}/sent-contacts.
输入模式
{
"type": "object",
"properties": {
"message_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"report_id": {
"description": "Only sends belonging to this report.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"list_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"contact_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"open_type": {
"type": "string",
"enum": [
"not_opened",
"html",
"text",
"sms"
]
},
"offset": {
"description": "Skip this many results (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
},
"limit": {
"description": "Results per page, 1-1000 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 1000
}
},
"required": [
"message_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢vision6_list_transactional_groups(type, name, offset, limit)
Transactional send groups (one per group name used with vision6_send_transactional) with sent, failed, bounced, delivered, opened, clicked and unsubscribed counts. GET /transactional-groups.
输入模式
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"email",
"sms"
],
"description": "Group type (the reference marks it required; call once per type)."
},
"name": {
"description": "Exact group name.",
"type": "string",
"maxLength": 255
},
"offset": {
"description": "Skip this many results (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
},
"limit": {
"description": "Results per page, 1-1000 (default 50).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 1000
}
},
"required": [
"type"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢vision6_get_transactional_group(group_id)
One transactional group by id with its delivery statistics. GET /transactional-groups/{group_id}.
输入模式
{
"type": "object",
"properties": {
"group_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"group_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡vision6_create_contact(list_id, email, mobile, fields, email_subscribed, ...)
WRITE: add one contact to a list (needs an email and/or mobile that matches a field of the list). May trigger the list's 'contact created' automations and notification emails. Returns the new contact. POST /lists/{list_id}/contacts.
输入模式
{
"type": "object",
"properties": {
"list_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"email": {
"description": "Email address (the list must have an Email field).",
"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,}$"
},
"mobile": {
"description": "Mobile number in international format without + or spaces (Australia: 61400000009). The list must have a Mobile field.",
"type": "string",
"pattern": "^\\d{6,15}$"
},
"fields": {
"description": "Custom list field values, keyed by the lowercase key of the field name (underscores for spaces/dashes, e.g. first_name). Use vision6_list_list_fields to see the list's fields.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 10000
},
{
"type": "number"
},
{
"type": "boolean"
}
]
}
},
"email_subscribed": {
"description": "Whether the email address is subscribed to receive messages.",
"type": "boolean"
},
"mobile_subscribed": {
"description": "Whether the mobile number is subscribed to receive messages.",
"type": "boolean"
},
"is_active": {
"description": "The contact's active status.",
"type": "boolean"
},
"double_opt_in": {
"description": "true marks the contact as already confirmed (sets the double opt-in time to now). It cannot be reset to false afterwards.",
"type": "boolean"
},
"remove_unsubscribers": {
"description": "Skip addresses that are on the unsubscribers list: any (account-wide), list (this list), none (default: create everyone).",
"type": "string",
"enum": [
"none",
"list",
"any"
]
}
},
"required": [
"list_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡vision6_add_contacts(list_id, contacts, remove_unsubscribers)
WRITE: add up to 200 contacts to a list in one request (faster than one by one). Each needs an email and/or mobile. Vision6 returns no contact data (HTTP 204), so use vision6_list_contacts to read them back. May trigger automations. POST /lists/{list_id}/contacts.
输入模式
{
"type": "object",
"properties": {
"list_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"contacts": {
"minItems": 1,
"maxItems": 200,
"type": "array",
"items": {
"type": "object",
"properties": {
"email": {
"description": "Email address (the list must have an Email field).",
"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,}$"
},
"mobile": {
"description": "Mobile number in international format without + or spaces (Australia: 61400000009). The list must have a Mobile field.",
"type": "string",
"pattern": "^\\d{6,15}$"
},
"fields": {
"description": "Custom list field values, keyed by the lowercase key of the field name (underscores for spaces/dashes, e.g. first_name). Use vision6_list_list_fields to see the list's fields.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 10000
},
{
"type": "number"
},
{
"type": "boolean"
}
]
}
},
"email_subscribed": {
"description": "Whether the email address is subscribed to receive messages.",
"type": "boolean"
},
"mobile_subscribed": {
"description": "Whether the mobile number is subscribed to receive messages.",
"type": "boolean"
},
"double_opt_in": {
"description": "true marks the contact as already confirmed (sets the double opt-in time to now). It cannot be reset to false afterwards.",
"type": "boolean"
}
}
}
},
"remove_unsubscribers": {
"description": "Skip addresses that are on the unsubscribers list: any (account-wide), list (this list), none (default: create everyone).",
"type": "string",
"enum": [
"none",
"list",
"any"
]
}
},
"required": [
"list_id",
"contacts"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴vision6_update_contact(list_id, contact_id, email, mobile, fields, ...)
WRITE: change one contact's email, mobile, custom field values, subscription status (email_subscribed/mobile_subscribed=false unsubscribes), active flag or double opt-in. Only the fields you pass change. May trigger 'contact updated' automations. Returns the updated contact. PATCH /lists/{list_id}/contacts/{contact_id}.
输入模式
{
"type": "object",
"properties": {
"list_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"contact_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"email": {
"description": "Email address (the list must have an Email field).",
"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,}$"
},
"mobile": {
"description": "Mobile number in international format without + or spaces (Australia: 61400000009). The list must have a Mobile field.",
"type": "string",
"pattern": "^\\d{6,15}$"
},
"fields": {
"description": "Custom list field values, keyed by the lowercase key of the field name (underscores for spaces/dashes, e.g. first_name). Use vision6_list_list_fields to see the list's fields.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 10000
},
{
"type": "number"
},
{
"type": "boolean"
}
]
}
},
"email_subscribed": {
"description": "Whether the email address is subscribed to receive messages.",
"type": "boolean"
},
"mobile_subscribed": {
"description": "Whether the mobile number is subscribed to receive messages.",
"type": "boolean"
},
"is_active": {
"description": "The contact's active status.",
"type": "boolean"
},
"double_opt_in": {
"description": "true marks the contact as already confirmed (sets the double opt-in time to now). It cannot be reset to false afterwards.",
"type": "boolean"
}
},
"required": [
"list_id",
"contact_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴vision6_delete_contact(list_id, contact_id, confirm)
WRITE, IRREVERSIBLE: permanently delete one contact from a list (for example for a privacy erasure request). To stop emailing someone but keep the record, use vision6_update_contact with email_subscribed=false instead. Pass confirm=true only after the user agreed to the deletion. DELETE /lists/{list_id}/contacts?id={contact_id}.
输入模式
{
"type": "object",
"properties": {
"list_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"contact_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"confirm": {
"type": "boolean",
"const": true,
"description": "Must be true: you confirm the user asked to permanently delete this contact."
}
},
"required": [
"list_id",
"contact_id",
"confirm"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡vision6_create_list(name, folder_id, allow_send_to_duplicates, on_register_address, on_unsubscribe_address, ...)
WRITE: create a new, empty contact list inside a list folder (see vision6_list_folders with type list). Returns the new list. POST /lists.
输入模式
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"folder_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Id of the list folder to create the list in."
},
"allow_send_to_duplicates": {
"description": "Allow sends to duplicate email or mobile addresses.",
"type": "boolean"
},
"on_register_address": {
"description": "Email addresses to notify when a contact is added.",
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"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,}$"
}
},
"on_unsubscribe_address": {
"description": "Email addresses to notify when a contact unsubscribes.",
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"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,}$"
}
},
"on_update_address": {
"description": "Email addresses to notify when a contact is updated.",
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"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,}$"
}
},
"is_gdpr_compliant": {
"type": "boolean"
}
},
"required": [
"name",
"folder_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴vision6_create_message(type, email_type, name, subject, from_name, ...)
WRITE: save a new email or SMS message in Vision6. This only stores the message; it is NOT sent (use the Vision6 app to send a campaign, or vision6_send_transactional for a one-off send). Email needs email_type, subject and matching body fields (plain: content_text; html: content_html; plain-html: both; raw_html: content_html or content_html_raw). SMS needs content_sms. The drag-and-drop builder is not supported. POST /messages.
输入模式
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"email",
"sms"
]
},
"email_type": {
"description": "Required for email.",
"type": "string",
"enum": [
"plain",
"plain-html",
"html",
"raw_html"
]
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "Display name of the message in Vision6."
},
"subject": {
"description": "Email subject line (required for email). Supports wildcards like %%first_name**there%%.",
"type": "string",
"minLength": 1,
"maxLength": 998
},
"from_name": {
"type": "string",
"maxLength": 255
},
"from_address": {
"description": "Sender address. For email it must be a verified address/domain in the account. Omit to use the account's saved default (see vision6_get_message_sender_defaults).",
"type": "string",
"maxLength": 254
},
"reply_to": {
"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,}$"
},
"content_html": {
"description": "HTML body (email types html and plain-html; raw_html accepts it or content_html_raw).",
"type": "string",
"maxLength": 2000000
},
"content_text": {
"description": "Plain-text body (email types plain and plain-html).",
"type": "string",
"maxLength": 200000
},
"content_html_raw": {
"description": "Raw HTML document (email type raw_html).",
"type": "string",
"maxLength": 2000000
},
"content_sms": {
"description": "SMS text (required for an sms message; keep it near 500 characters).",
"type": "string",
"maxLength": 2000
},
"is_template": {
"description": "Mark the message as reusable starter content.",
"type": "boolean"
},
"is_responsive": {
"description": "Responsive HTML flag (email).",
"type": "boolean"
},
"folder_id": {
"description": "Message folder id (see vision6_list_folders with type message). Omit to use the account's first message folder.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"type",
"name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴vision6_update_message(message_id, name, subject, from_name, from_address, ...)
WRITE: change a saved message's name, subject, sender, folder or body. Only the fields you pass change. It does not send anything. PATCH /messages/{message_id}.
输入模式
{
"type": "object",
"properties": {
"message_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "Display name of the message in Vision6."
},
"subject": {
"description": "Email subject line (required for email). Supports wildcards like %%first_name**there%%.",
"type": "string",
"minLength": 1,
"maxLength": 998
},
"from_name": {
"type": "string",
"maxLength": 255
},
"from_address": {
"description": "Sender address. For email it must be a verified address/domain in the account. Omit to use the account's saved default (see vision6_get_message_sender_defaults).",
"type": "string",
"maxLength": 254
},
"reply_to": {
"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,}$"
},
"content_html": {
"description": "HTML body (email types html and plain-html; raw_html accepts it or content_html_raw).",
"type": "string",
"maxLength": 2000000
},
"content_text": {
"description": "Plain-text body (email types plain and plain-html).",
"type": "string",
"maxLength": 200000
},
"content_html_raw": {
"description": "Raw HTML document (email type raw_html).",
"type": "string",
"maxLength": 2000000
},
"content_sms": {
"description": "SMS text (required for an sms message; keep it near 500 characters).",
"type": "string",
"maxLength": 2000
},
"is_template": {
"description": "Mark the message as reusable starter content.",
"type": "boolean"
},
"is_responsive": {
"description": "Responsive HTML flag (email).",
"type": "boolean"
},
"folder_id": {
"description": "Message folder id (see vision6_list_folders with type message). Omit to use the account's first message folder.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"message_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴vision6_send_transactional(type, group_name, group_id, list_id, message_id, ...)
WRITE: SENDS REAL EMAIL OR SMS to the recipients immediately (asynchronously) and USES ACCOUNT SENDING CREDITS. It cannot be recalled. Up to 100 recipients per call, each identified by exactly one of contact_id, email or mobile, plus optional personalisation values (wildcards %%key%% in the body). Either send a saved message (message_id) or custom content (subject/body_html/body_text, and for SMS body_text + from_address). Unsubscribed addresses are skipped. Email always needs list_id. Results appear in the transactional group (vision6_get_transactional_group). The account owner's email must be confirmed in Vision6 first. Pass confirm_send=true only after the user approved these recipients and this content. POST /transactional-sends.
输入模式
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"email",
"sms"
]
},
"group_name": {
"description": "Name of the transactional group that collects the results (created if new). One of group_name or group_id is required.",
"type": "string",
"minLength": 1,
"maxLength": 255
},
"group_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"list_id": {
"description": "List the recipients belong to (required for email; optional for SMS).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"message_id": {
"description": "A saved message to send. Do not combine with custom content.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"subject": {
"description": "Custom email subject (without message_id).",
"type": "string",
"maxLength": 998
},
"from_name": {
"type": "string",
"maxLength": 255
},
"from_address": {
"description": "Verified sender email address, or the sender mobile number for SMS.",
"type": "string",
"maxLength": 254
},
"reply_to": {
"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,}$"
},
"body_html": {
"description": "Custom HTML body (email, without message_id).",
"type": "string",
"maxLength": 2000000
},
"body_text": {
"description": "Custom plain-text body (email or SMS, without message_id).",
"type": "string",
"maxLength": 200000
},
"unsubscribe_type": {
"description": "SMS with custom content only: how recipients can opt out.",
"type": "string",
"enum": [
"none",
"word",
"link"
]
},
"recipients": {
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "object",
"properties": {
"contact_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"email": {
"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,}$"
},
"mobile": {
"type": "string",
"pattern": "^\\d{6,15}$"
},
"data": {
"description": "Personalisation values by wildcard key (lowercase letters, digits, underscores).",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 10000
},
{
"type": "number"
},
{
"type": "boolean"
}
]
}
}
}
}
},
"confirm_send": {
"type": "boolean",
"const": true,
"description": "Must be true: you confirm the user approved sending this email/SMS now (it cannot be recalled and uses credits)."
}
},
"required": [
"type",
"recipients",
"confirm_send"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}社区
证据