SlickText MCP by usefulapi

Read SlickText contacts, lists, campaigns, analytics and inbox; create and update contacts.

我該用這個嗎

品質與安全性

A
說明品質
98%
結構描述完整度
89%
命名品質
79%
汙染風險
80%
權限相符程度
100%
協定合規性
100%

發現項目(3)

  • HIGHTool poisoning patterns detected
  • LOWTool 'slicktext_list_segment_contacts' name length outside 3-30 range在 slicktext_list_segment_contacts 中
  • INFOTool description contains placeholder or incomplete text在 slicktext_find_contact 中

根據工具定義與協定合規性的自動化分析。

上下文成本

~5,639Token(工具定義)
~1.7 KB典型回應大小
顯著的注意力影響(128k 上下文的 4.41%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "slicktext": {
      "url": "https://slicktext.usefulapi.io/mcp"
    }
  }
}

遠端端點

https://slicktext.usefulapi.io/mcpstreamable-http

它能做什麼

工具清單

工具(24)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟢slicktext_get_brand

Get the SlickText brand this API key belongs to: brand_id, name, website, sending-number registration details, opt-in / double-opt-in messages, inbox settings and the message credit limit. Every other tool works within this brand. GET /brands.

輸入結構描述

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢slicktext_get_credit_usage

Message credits for the current billing period: total_credits (subscription + rollover + purchased), credits_used, credits_available and the credit limit. GET /brands/{brand_id}/usage.

輸入結構描述

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢slicktext_list_contacts(opt_in_status, first_name, last_name, custom_fields, limit, ...)

List the brand's contacts (subscribers) with name, mobile_number, email, opt_in_status, source, custom_fields and dates. Filters are exact, case-sensitive matches (SlickText has no partial search). Paged: returns count, has_more and next_offset. GET /brands/{brand_id}/contacts.

輸入結構描述

{
  "type": "object",
  "properties": {
    "opt_in_status": {
      "description": "Only contacts with this opt-in status.",
      "type": "string",
      "enum": [
        "not subscribed",
        "subscribed",
        "unsubscribed",
        "blocked"
      ]
    },
    "first_name": {
      "description": "Exact first name (case-sensitive).",
      "type": "string",
      "maxLength": 255
    },
    "last_name": {
      "description": "Exact last name (case-sensitive).",
      "type": "string",
      "maxLength": 255
    },
    "custom_fields": {
      "description": "Exact-match filters on custom fields, keyed by internal_name (see slicktext_list_custom_fields), e.g. {\"favorite_color\": \"blue\"}.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string",
            "maxLength": 1000
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          }
        ]
      }
    },
    "limit": {
      "description": "Results per page (1-100, default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Number of results to skip (default 0). Use next_offset from the previous page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢slicktext_find_contact(mobile_number, email, limit, offset)

Find contacts by mobile number or email address (exact match). A 10-digit US number is matched as +1XXXXXXXXXX, the way SlickText stores numbers. Use it before creating a contact to avoid duplicates. GET /brands/{brand_id}/contacts?mobile_number=… or ?email=….

輸入結構描述

{
  "type": "object",
  "properties": {
    "mobile_number": {
      "description": "Mobile number, e.g. +16155553338 or (615) 555-3338.",
      "type": "string",
      "minLength": 7,
      "maxLength": 32
    },
    "email": {
      "description": "Exact email address (case-sensitive, as stored).",
      "type": "string",
      "minLength": 3,
      "maxLength": 254
    },
    "limit": {
      "description": "Results per page (1-100, default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Number of results to skip (default 0). Use next_offset from the previous page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢slicktext_get_contact(contact_id)

Get one contact by id: name, mobile_number, email, birthdate, address, opt_in_status, source, custom_fields, time zone and dates. GET /brands/{brand_id}/contacts/{id}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "contact_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The contact id (a positive integer)."
    }
  },
  "required": [
    "contact_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢slicktext_list_custom_fields(limit, offset)

List the brand's contact custom fields: name, internal_name (the key used in contact filters and writes), data_type and description. GET /brands/{brand_id}/custom-fields.

輸入結構描述

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Results per page (1-100, default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Number of results to skip (default 0). Use next_offset from the previous page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢slicktext_list_lists(name, limit, offset)

List the brand's contact lists (contact_list_id, name, description, created). Optional exact name filter. GET /brands/{brand_id}/lists.

輸入結構描述

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Exact list name (case-sensitive).",
      "type": "string",
      "maxLength": 255
    },
    "limit": {
      "description": "Results per page (1-100, default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Number of results to skip (default 0). Use next_offset from the previous page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢slicktext_get_list(list_id)

Get one contact list by id plus its contact count (all statuses: subscribed, not subscribed, unsubscribed, blocked). GET /brands/{brand_id}/lists/{id} and /lists/{id}/contacts/count.

輸入結構描述

{
  "type": "object",
  "properties": {
    "list_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The contact list id (a positive integer)."
    }
  },
  "required": [
    "list_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢slicktext_list_list_contacts(list_id, opt_in_status, limit, offset)

List the contacts in one contact list (paged). GET /brands/{brand_id}/lists/{id}/contacts.

輸入結構描述

{
  "type": "object",
  "properties": {
    "list_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The contact list id (a positive integer)."
    },
    "opt_in_status": {
      "description": "Only contacts with this opt-in status.",
      "type": "string",
      "enum": [
        "not subscribed",
        "subscribed",
        "unsubscribed",
        "blocked"
      ]
    },
    "limit": {
      "description": "Results per page (1-100, default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Number of results to skip (default 0). Use next_offset from the previous page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    }
  },
  "required": [
    "list_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢slicktext_list_segments(limit, offset)

List the brand's segments (rule-based contact groups: segment_id, name, description). GET /brands/{brand_id}/segments.

輸入結構描述

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Results per page (1-100, default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Number of results to skip (default 0). Use next_offset from the previous page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢slicktext_list_segment_contacts(segment_id, limit, offset)

List the contacts that currently match one segment (paged). GET /brands/{brand_id}/segments/{id}/contacts.

輸入結構描述

{
  "type": "object",
  "properties": {
    "segment_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The segment id (a positive integer)."
    },
    "limit": {
      "description": "Results per page (1-100, default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Number of results to skip (default 0). Use next_offset from the previous page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    }
  },
  "required": [
    "segment_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢slicktext_list_campaigns(status, limit, offset)

List the brand's SMS/MMS campaigns: name, body, status (e.g. draft, scheduled, queued, sent), scheduled/started/finished times, completion_percentage and audience (lists/segments and size). GET /brands/{brand_id}/campaigns.

輸入結構描述

{
  "type": "object",
  "properties": {
    "status": {
      "description": "Exact status, e.g. \"sent\", \"scheduled\", \"draft\".",
      "type": "string",
      "maxLength": 32
    },
    "limit": {
      "description": "Results per page (1-100, default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Number of results to skip (default 0). Use next_offset from the previous page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢slicktext_get_campaign(campaign_id)

Get one campaign by id: body, media_url, status, audience_size, schedule and completion. GET /brands/{brand_id}/campaigns/{id}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "campaign_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The campaign id (a positive integer)."
    }
  },
  "required": [
    "campaign_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢slicktext_get_campaign_stats(campaign_id, group)

Performance of one campaign: contacts reached, clicks, click_rate, unique clicks, unsubscribes, unsubscribe_rate, orders, revenue, average order value, revenue per message, plus the campaign, its audiences and links. GET /brands/{brand_id}/analytics/campaigns/{id}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "campaign_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The campaign id (a positive integer)."
    },
    "group": {
      "description": "Group the results by source.",
      "type": "string",
      "enum": [
        "source"
      ]
    }
  },
  "required": [
    "campaign_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢slicktext_get_analytics(metric, group, start, end, frequency, ...)

Brand-level analytics. metric: contacts (current totals), contact_growth, contact_add_delete_events, opt_in_status_events, campaigns, messages (messages sent), message_credits, inbox_users (assignments, closures, response times per user), inbox_tags. Optional group (allowed per metric — contacts: source|opt_in_status; contact_growth/campaigns: contact_source; contact_add_delete_events: contact_source|type; opt_in_status_events: contact_source|contact_unsubscribe_source|opt_in_status; messages: source|status|direction|weekday; message_credits: source|status), a start/end range, frequency (hour/day/month/year) and compare (YoY, QoQ, MoM, WoW, DoD, PoP). GET /brands/{brand_id}/analytics/….

輸入結構描述

{
  "type": "object",
  "properties": {
    "metric": {
      "type": "string",
      "enum": [
        "contacts",
        "contact_growth",
        "contact_add_delete_events",
        "opt_in_status_events",
        "campaigns",
        "messages",
        "message_credits",
        "inbox_users",
        "inbox_tags"
      ],
      "description": "Which analytics report."
    },
    "group": {
      "description": "Group results by this field (allowed values depend on metric; see description).",
      "type": "string",
      "maxLength": 64
    },
    "start": {
      "description": "Range start, YYYY-MM-DD or YYYY-MM-DD HH:MM[:SS] (SlickText's format, no time zone (passed through as is)).",
      "type": "string",
      "maxLength": 32
    },
    "end": {
      "description": "Range end, YYYY-MM-DD (= end of that day) or YYYY-MM-DD HH:MM[:SS] (SlickText's format, no time zone (passed through as is)).",
      "type": "string",
      "maxLength": 32
    },
    "frequency": {
      "description": "Bucket size of the time series.",
      "type": "string",
      "enum": [
        "hour",
        "day",
        "month",
        "year"
      ]
    },
    "compare": {
      "description": "Compare with the previous period.",
      "type": "string",
      "enum": [
        "YoY",
        "QoQ",
        "MoM",
        "WoW",
        "DoD",
        "PoP"
      ]
    }
  },
  "required": [
    "metric"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢slicktext_list_keywords(active, limit, offset)

List the brand's text-to-join keywords (word, description, active, auto-response and opt-in messages, double opt-in). GET /brands/{brand_id}/keywords.

輸入結構描述

{
  "type": "object",
  "properties": {
    "active": {
      "description": "true = only active keywords, false = only inactive.",
      "type": "boolean"
    },
    "limit": {
      "description": "Results per page (1-100, default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Number of results to skip (default 0). Use next_offset from the previous page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢slicktext_get_keyword(keyword_id)

Get one keyword by id, including the contact_list_ids that people who text it are added to. GET /brands/{brand_id}/keywords/{id}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "keyword_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The keyword id (a positive integer)."
    }
  },
  "required": [
    "keyword_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢slicktext_list_messages(direction, status, source, source_id, to, ...)

List individual SMS/MMS messages sent and received by the brand: to, from, body, direction, source (Campaign, Keyword, InboxThread, API …), status (delivered, undelivered …), credits and the contact. Filters are exact matches; use to/from with a phone number to read one contact's history, or source=InboxThread with source_id = a conversation id. GET /brands/{brand_id}/messages.

輸入結構描述

{
  "type": "object",
  "properties": {
    "direction": {
      "type": "string",
      "enum": [
        "incoming",
        "outgoing"
      ]
    },
    "status": {
      "description": "Exact status, e.g. \"delivered\", \"undelivered\".",
      "type": "string",
      "maxLength": 32
    },
    "source": {
      "description": "Exact source, e.g. \"Campaign\", \"Keyword\", \"InboxThread\", \"API\".",
      "type": "string",
      "maxLength": 32
    },
    "source_id": {
      "description": "Id of the source (a campaign id, a conversation id …).",
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{1,64}$"
    },
    "to": {
      "description": "Recipient number (outgoing messages: the contact; incoming: your number).",
      "type": "string",
      "minLength": 7,
      "maxLength": 32
    },
    "from": {
      "description": "Sender number (incoming messages: the contact; outgoing: your number).",
      "type": "string",
      "minLength": 7,
      "maxLength": 32
    },
    "limit": {
      "description": "Results per page (1-100, default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Number of results to skip (default 0). Use next_offset from the previous page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢slicktext_list_conversations(status, assigned_to_user_id, limit, offset)

List two-way inbox conversations: status (open, pending, closed), the contact, the last message and its direction/time, assigned user, tags and unread state. GET /brands/{brand_id}/inbox-threads.

輸入結構描述

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "open",
        "pending",
        "closed"
      ]
    },
    "assigned_to_user_id": {
      "description": "Only conversations assigned to this user id.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "limit": {
      "description": "Results per page (1-100, default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Number of results to skip (default 0). Use next_offset from the previous page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢slicktext_get_conversation(conversation_id)

Get the content of one inbox conversation by its id (the _id from slicktext_list_conversations). For the message-by-message history also call slicktext_list_messages with source=InboxThread and source_id=<conversation id>. GET /brands/{brand_id}/inbox-threads/{id}/content.

輸入結構描述

{
  "type": "object",
  "properties": {
    "conversation_id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9]{1,64}$",
      "description": "The conversation _id, e.g. 6744a2ba587c8f2cf4028786."
    }
  },
  "required": [
    "conversation_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢slicktext_list_inbox_tags(limit, offset)

List the inbox tags used to label conversations (inbox_tag_id, name, color, description). GET /brands/{brand_id}/inbox-tags.

輸入結構描述

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Results per page (1-100, default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Number of results to skip (default 0). Use next_offset from the previous page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴slicktext_create_contact(mobile_number, first_name, last_name, email, birthdate, ...)

WRITE: add a contact to the brand. By default the contact is created as 'not subscribed' and gets no text. Set opt_in_status='subscribed' ONLY for people who gave explicit permission to receive texts (SlickText has a zero-tolerance policy for unsolicited texts). force_double_opt_in=true makes SlickText SEND A REAL SMS to the number asking the person to confirm. Check slicktext_find_contact first to avoid duplicates. WARNING: SlickText workflows can trigger on this event (Contact Created / Contact Field Changed / Contact Added to List) and may immediately SEND REAL TEXTS or take other actions configured in the brand's workflows. POST /brands/{brand_id}/contacts.

輸入結構描述

{
  "type": "object",
  "properties": {
    "mobile_number": {
      "type": "string",
      "minLength": 7,
      "maxLength": 32,
      "description": "Mobile number (required), e.g. +16155553338 or (615) 555-3338."
    },
    "first_name": {
      "type": "string",
      "maxLength": 255
    },
    "last_name": {
      "type": "string",
      "maxLength": 255
    },
    "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,}$"
    },
    "birthdate": {
      "description": "Birthday, YYYY-MM-DD.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "address": {
      "type": "string",
      "maxLength": 255
    },
    "city": {
      "type": "string",
      "maxLength": 255
    },
    "state": {
      "type": "string",
      "maxLength": 64
    },
    "zip": {
      "type": "string",
      "maxLength": 16
    },
    "country": {
      "type": "string",
      "maxLength": 64
    },
    "timezone": {
      "description": "Contact time zone (SlickText accepts these four).",
      "type": "string",
      "enum": [
        "America/New_York",
        "America/Chicago",
        "America/Denver",
        "America/Los_Angeles"
      ]
    },
    "language": {
      "description": "Primary language code, e.g. \"en\".",
      "type": "string",
      "maxLength": 16
    },
    "custom_fields": {
      "description": "Custom field values keyed by the field's internal_name (see slicktext_list_custom_fields), e.g. {\"favorite_color\": \"blue\"}.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string",
            "maxLength": 1000
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          }
        ]
      }
    },
    "opt_in_status": {
      "description": "Default 'not subscribed'. 'subscribed' only with the person's explicit consent.",
      "type": "string",
      "enum": [
        "not subscribed",
        "subscribed",
        "unsubscribed",
        "blocked"
      ]
    },
    "force_double_opt_in": {
      "description": "true = SlickText texts the number a double opt-in confirmation (a real SMS).",
      "type": "boolean"
    }
  },
  "required": [
    "mobile_number"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴slicktext_update_contact(contact_id, mobile_number, first_name, last_name, email, ...)

WRITE: change fields of an existing contact (only the fields you pass are sent). opt_in_status can mark a contact unsubscribed or blocked; set it to 'subscribed' ONLY when the person explicitly agreed to receive texts. WARNING: SlickText workflows can trigger on this event (Contact Created / Contact Field Changed / Contact Added to List) and may immediately SEND REAL TEXTS or take other actions configured in the brand's workflows. PUT /brands/{brand_id}/contacts/{id}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "contact_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The contact id (a positive integer)."
    },
    "mobile_number": {
      "description": "New mobile number.",
      "type": "string",
      "minLength": 7,
      "maxLength": 32
    },
    "first_name": {
      "type": "string",
      "maxLength": 255
    },
    "last_name": {
      "type": "string",
      "maxLength": 255
    },
    "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,}$"
    },
    "birthdate": {
      "description": "Birthday, YYYY-MM-DD.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "address": {
      "type": "string",
      "maxLength": 255
    },
    "city": {
      "type": "string",
      "maxLength": 255
    },
    "state": {
      "type": "string",
      "maxLength": 64
    },
    "zip": {
      "type": "string",
      "maxLength": 16
    },
    "country": {
      "type": "string",
      "maxLength": 64
    },
    "timezone": {
      "description": "Contact time zone (SlickText accepts these four).",
      "type": "string",
      "enum": [
        "America/New_York",
        "America/Chicago",
        "America/Denver",
        "America/Los_Angeles"
      ]
    },
    "language": {
      "description": "Primary language code, e.g. \"en\".",
      "type": "string",
      "maxLength": 16
    },
    "custom_fields": {
      "description": "Custom field values keyed by the field's internal_name (see slicktext_list_custom_fields), e.g. {\"favorite_color\": \"blue\"}.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string",
            "maxLength": 1000
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          }
        ]
      }
    },
    "opt_in_status": {
      "description": "New opt-in status. 'subscribed' only with the person's explicit consent.",
      "type": "string",
      "enum": [
        "not subscribed",
        "subscribed",
        "unsubscribed",
        "blocked"
      ]
    }
  },
  "required": [
    "contact_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴slicktext_add_contact_to_lists(contact_id, list_ids)

WRITE: add one contact to one or more contact lists (it does not change the contact's opt-in status; lists are also campaign audiences). Returns SlickText's count of memberships added. WARNING: SlickText workflows can trigger on this event (Contact Created / Contact Field Changed / Contact Added to List) and may immediately SEND REAL TEXTS or take other actions configured in the brand's workflows. POST /brands/{brand_id}/lists/contacts.

輸入結構描述

{
  "type": "object",
  "properties": {
    "contact_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The contact id (a positive integer)."
    },
    "list_ids": {
      "minItems": 1,
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "integer",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991
      },
      "description": "Contact list ids (from slicktext_list_lists)."
    }
  },
  "required": [
    "contact_id",
    "list_ids"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本24 個工具