Agent skill · forcedotcom

service-de-channel-create

**INTERNAL USE ONLY — invoked by `service-de-headless-channel-configure`.** Insert an Enhanced messaging `MessagingChannel` (plus child `MessagingChannelUsage` as a free side-effect) of any type — WhatsApp, LINE, Apple Business Chat, Facebook, or SMS. Given a `{MESSAGE_TYPE}` and its inputs, runs the shared preflight → Connect-insert → verify flow, branching only where a type differs. Uses `POST /services/data/v{V}/connect/livemessage/channels` — no Aura session, no shell-stored token. **Invoke `service-de-headless-channel-configure` instead** — it handles insert → route → activate in one flow; replaces the four former per-type creation skills.

What it needs

About 10k tokens when loaded.

What this skill does

Inserting Messaging Channels Reference File Index Reference file Load when --- --- references/whatsapp.md MESSAGETYPE=WhatsApp — WABA partnership (Stage 2) + SF-side manage-WABA (Stage 3) prereqs, request body, WhatsApp gotchas. references/line.md MESSAGETYPE=Line — optional token verify, authDetails body shape, LINE gotchas. references/apple.md MESSAGETYPE=AppleBusinessChat — empty-config body, Apple-precondition errors, Apple gotchas. references/facebook.md MESSAGETYPE=Facebook — browser OAuth → page-selection flow, Facebook gotchas. references/sms.md MESSAGETYPE=Text — phone-number platform key, present-but-unvalidated smsProvider, number-provisioning prerequisite (caller's), SMS gotchas. references/connect-insert.md Shared authProviderId lookup + Connect POST + response-classification detail (Stage 4). references/worked-examples.md End-to-end traces per type (fresh insert, preflight short-circuit, OAuth). What this skill does Given a {MESSAGETYPE} and its inputs, creates a MessagingChannel record with PlatformType=Enhanced, IsActive=false. The same server-side path (LiveMessageSetupServiceImpl.addChannel → LiveMessageChannelsUtil.findOrCreateCsotMessagingChannel) also inserts a MessagingChannelUsage row (DeploymentType=Conversation, DeploymentStatus=New on fresh insert — Disabled on a channel that was previously activated then deactivated) — we get it for free. One primary path for every type: Connect REST API. POST /services/data/v{V}/connect/livemessage/channels with an org OAuth session managed by sf api request rest. Public, sanctioned, live since API v66+. No Aura session, no token extracted into shell state. Idempotent on (MessagingPlatformKey, MessageType) — re-firing with the same platform key returns the existing channel's id. This matters because MessagingChannel records are not deletable via standard means, so the preflight (Stage 1) is the practical idempotency guard. …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills forcedotcom/service-de-channel-create--4b57ef

View the source on GitHub

Browse the @skills marketplace