Vision6 MCP by usefulapi

Read Vision6 lists, contacts, messages and reports; update contacts; send transactional email/SMS.

使うべきか

品質と安全性

A
説明の品質
99%
スキーマの完全性
85%
命名の品質
77%
ポイズニングのリスク
100%
権限の一致
100%
プロトコルへの準拠
100%

検出事項(3)

  • LOWTool 'vision6_get_message_sender_defaults' name length outside 3-30 rangevision6_get_message_sender_defaults 内
  • LOWTool 'vision6_list_transactional_groups' name length outside 3-30 rangevision6_list_transactional_groups 内
  • LOWTool 'vision6_get_transactional_group' name length outside 3-30 rangevision6_get_transactional_group 内

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~7,522トークン数(ツール定義)
~2.6 KB一般的なレスポンスサイズ
注意への影響は大きい(128k コンテキストの 5.88%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `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"
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

検証済みバージョンは記録されていませんツール 23 件