К основному содержанию
скилл CX Codex

integration-eventing-subscription-configure — скилл для Claude Code

Скилл создаёт и изменяет метаданные подписок Salesforce на каналы событий. Пригодится для настройки replay, чтения и удаления ManagedEventSubscription.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add forcedotcom/sf-skills --skill integration-eventing-subscription-configure -a claude-code
Открыть на GitHub

Что делает integration-eventing-subscription-configure

Скилл помогает создать, прочитать, изменить или удалить ManagedEventSubscription. При создании он формирует файл managedEventSubscriptions/<DeveloperName>.managedEventSubscription-meta.xml, а при обновлении сохраняет поля, которые не просили менять. Для удаления готовит инструкции по удалению файла и destructive deployment.

Перед созданием нужно подтвердить, что канал событий уже есть в org: этот скилл его не создаёт. Значения replay должны быть LATEST или EARLIEST, а состояние — RUN или STOP. Скилл работает с метаданными и не развёртывает их в org; для установки в Claude Code выполните npx skills add forcedotcom/sf-skills --skill integration-eventing-subscription-configure -a claude-code.

Какие задачи решает

  • создать файл метаданных подписки на канал событий
  • прочитать текущий XML подписки по DeveloperName или Id
  • изменить заданные поля, сохранив остальные
  • подготовить инструкции для удаления подписки и destructive deployment
  • настроить replay и состояние подписки

Примеры запросов агенту

  • Создай ManagedEventSubscription для существующего канала событий и подготовь XML-файл.
  • Прочитай подписку с DeveloperName OrderEventsSubscriber и покажи её текущий XML.
  • Останови подписку с Id SUBSCRIPTION_ID и подготовь инструкции для удаления.

Как установить integration-eventing-subscription-configure

1Через Skills CLI (Vercel)

npx skills add forcedotcom/sf-skills --skill integration-eventing-subscription-configure -a claude-code

2Вручную: положить файлы

~/.claude/skills/integration-eventing-subscription-configure/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/integration-eventing-subscription-configure/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о integration-eventing-subscription-configure

Как установить integration-eventing-subscription-configure в Claude Code?

Выполните npx skills add forcedotcom/sf-skills --skill integration-eventing-subscription-configure -a claude-code. Файл скилла находится по пути ~/.claude/skills/integration-eventing-subscription-configure/SKILL.md.

Что делает integration-eventing-subscription-configure?

Скилл создаёт, читает, обновляет и удаляет метаданные ManagedEventSubscription в Salesforce. Он также помогает задать replay и состояние подписки.

Нужно ли заранее создать канал событий?

Да. До создания подписки канал должен существовать в org; скилл не создаёт его. Для канала событий подходит отдельный скилл platform-custom-object-generate.

Исходный текст

SKILL.md · Apache-2.0
---
name: integration-eventing-subscription-configure
description: "Create, read, update, and delete ManagedEventSubscription metadata in Salesforce. Use this skill for any work involving managed event subscriptions, platform event subscriptions, event channel subscribers, or .managedEventSubscription-meta.xml files. TRIGGER when: user asks to subscribe to a platform event, create a managed subscription, set up event replay, configure an event channel subscriber, update replay preset, activate or deactivate a subscription, delete a subscription, or manage ManagedEventSubscription metadata. SKIP when: user needs to create the platform event channel itself (use platform-custom-object-generate skill) or needs Flow-based event subscriptions (use automation-flow-generate skill)."
metadata:
  version: "1.0"
  domains: ["Integration"]
  minApiVersion: "60.0"
  relatedSkills:
    - "automation-flow-generate"
    - "platform-custom-object-generate"
    - "platform-metadata-deploy"
  cliTools:
    - tool: ["sf"]
      semver: ">=2.0.0"
---

# Managing ManagedEventSubscription

Create, read, update, and delete `ManagedEventSubscription` metadata — the Salesforce construct for durably subscribing to platform event channels with managed replay tracking.

## Scope

- **In scope**: Generating and modifying `.managedEventSubscription-meta.xml` files for create, read, update, and delete operations
- **Out of scope**: Creating the underlying platform event (`__e`) channel itself; Flow-based or Apex-based event subscriptions; deploying metadata to an org
- **Only generate one file** — the `.managedEventSubscription-meta.xml` file. Do NOT generate the referenced platform event object or any other metadata type.

---

## Clarifying Questions

Before generating, confirm if not already clear:

- What is the **topic name**? (see format table in `references/topic-name-formats.md`)
- What is the **developer name**? (required for Create — alphanumeric and underscores only, no spaces; optional for Read/Update/Delete if `Id` is known)
- What is the **label** (human-readable name)?
- What **default replay** preset — `LATEST` (default) or `EARLIEST`?
- What **error recovery replay** preset — `LATEST` (default) or `EARLIEST`?
- What should the initial **state** be — `RUN` (active) or `STOP` (inactive)? (default: `RUN`)

---

## Required Inputs

Gather or infer before proceeding:

- **Operation**: create, read, update, or delete
- **DeveloperName**: required for Create (becomes the filename); optional for Read/Update/Delete if `Id` is provided instead
- **Id**: Tooling API record Id — can be used to identify the subscription for Read/Update/Delete instead of DeveloperName
- **label**: human-readable label (can include spaces)
- **topicName**: event channel path — read `references/topic-name-formats.md` for valid formats (platform events, change events, custom channels)
- **defaultReplay**: `LATEST` or `EARLIEST` (default: `LATEST`)
- **errorRecoveryReplay**: `LATEST` or `EARLIEST` (default: `LATEST`)
- **state**: `RUN` or `STOP` (default: `RUN`) — `PAUSE` is reserved for internal platform use and will be rejected with `INVALID_INPUT`
- **version**: Metadata API version (default: match org API version, e.g. `67.0`)

---

## Workflow

### Create

1. **Gather inputs** — confirm DeveloperName, label, topicName, defaultReplay, errorRecoveryReplay, state, version. Apply defaults for any omitted fields. If DeveloperName is not provided, ask the user — do not derive it from the label.
2. **Confirm the topic exists** — ask the user to confirm the event channel already exists in the org before proceeding. Do NOT generate the platform event object yourself — that is out of scope for this skill. If the user says it doesn't exist yet, stop and direct them to create it first using the `platform-custom-object-generate` skill, then return here.
3. **Read the template** — load `assets/managed-event-subscription-template.xml` as the starting structure.
4. **Generate the file** — produce `managedEventSubscriptions/<DeveloperName>.managedEventSubscription-meta.xml` filled with user-provided values.
5. **Verify** — run the checklist below before presenting output.
6. **Guide the user on subscribing** — after deployment, the subscription can be identified for Pub/Sub API `ManagedSubscribe` RPC calls using either the `DeveloperName` or the record `Id`. To retrieve the `Id`, run: `SELECT Id, DeveloperName FROM ManagedEventSubscription WHERE DeveloperName='<DeveloperName>'` via the Tooling API.

### Read

1. **Identify the subscription** — accept either `Id` or `DeveloperName`; prefer `Id` if provided.
2. **Show the file path** — `managedEventSubscriptions/<DeveloperName>.managedEventSubscription-meta.xml` (if DeveloperName known).
3. **Retrieve and display** — read and present the current XML content.

### Update

1. **Identify the subscription** — accept either `Id` or `DeveloperName`; prefer `Id` if provided.
2. **Read the existing file** — load current content before modifying.
3. **Apply changes** — update only the specified fields; preserve all others.
4. **Read `references/update-constraints.md`** for fields that cannot be changed after creation.
5. **Verify** — run the checklist below before presenting output.

### Delete

1. **Identify the subscription** — accept either `Id` or `DeveloperName`; confirm with the user before proceeding.
2. **Warn** — deleting a ManagedEventSubscription permanently removes replay tracking state.
3. **Produce deletion instructions** — explain how to remove the file and deploy the destructive change using `destructiveChanges.xml`.
4. **Read `references/delete-guide.md`** for the destructive deployment procedure.

---

## Rules / Constraints

| Constraint | Rationale |
|-----------|-----------|
| `<topicName>` must use a valid path prefix | Platform events use `/event/Name__e`; change events use `/data/Name`; see `references/topic-name-formats.md` for all formats |
| `<defaultReplay>` and `<errorRecoveryReplay>` must be `LATEST` or `EARLIEST` | These are the only valid enum values; any other value fails metadata validation |
| `<state>` must be `RUN` or `STOP` | `PAUSE` is reserved for internal platform use — the API rejects it with `INVALID_INPUT: You can create a managed event subscription state field only to RUN or STOP` |
| All six required elements must be present | `topicName`, `defaultReplay`, `errorRecoveryReplay`, `label`, `state`, `version` are all required; omitting any causes a deploy error |
| DeveloperName must be unique within the org | Duplicate names cause `DUPLICATE_DEVELOPER_NAME` errors |
| Do not include `<namespacePrefix>`, `<id>`, or `<createdDate>` | Read-only platform fields; including them causes deployment failures in unpackaged orgs |

---

## Gotchas

| Issue | Resolution |
|-------|------------|
| `The topicName field is invalid` on deploy | Wrong format or the event doesn't exist in the org — read `references/topic-name-formats.md` for correct path |
| Replay state lost after delete + recreate | Deleting discards stored replay position; recreating starts from `defaultReplay` — avoid reusing the same DeveloperName after delete |
| `INVALID_TYPE` on SOQL query | ManagedEventSubscription is only queryable via Tooling API, not standard SOQL |
| `EARLIEST` replay on high-volume channels | Can trigger up to 72 hours of backlog replay on activation; always confirm with the user |
| Metadata not supported in older orgs | ManagedEventSubscription requires API v60.0+; check org API version |
| `eventChannel` or `isActive` in generated XML | These are wrong field names — use `topicName` and `state` (`RUN`/`STOP`) instead |
| `PAUSE` state in generated XML | `PAUSE` is reserved for internal platform use and will be rejected with `INVALID_INPUT` — only use `RUN` or `STOP` |
| User unsure how to identify subscription for Pub/Sub API | Both `DeveloperName` and record `Id` can be used with `ManagedSubscribe` RPC — retrieve the `Id` via Tooling API if needed: `SELECT Id FROM ManagedEventSubscription WHERE DeveloperName='<name>'` |
| Changes not reflected immediately in Pub/Sub API | After create/update/delete, the Pub/Sub API can take up to ~2 minutes to reflect the new config; if ManagedSubscribe returns NOT_FOUND, wait and retry |

---

## Verification Checklist

Before presenting any generated XML:

- [ ] Does `<topicName>` follow a valid path format per `references/topic-name-formats.md`? (`/event/Name__e`, `/data/NameChangeEvent`, `/data/ChangeEvents`, `/event/Name__chn`, `/data/Name__chn`)
- [ ] Is `<defaultReplay>` exactly `LATEST` or `EARLIEST`?
- [ ] Is `<errorRecoveryReplay>` exactly `LATEST` or `EARLIEST`?
- [ ] Is `<state>` exactly `RUN` or `STOP`? (`PAUSE` is invalid for user-created subscriptions)
- [ ] Is `<label>` populated?
- [ ] Is `<version>` present (e.g. `67.0`)?
- [ ] Are read-only fields (`<id>`, `<createdDate>`, `<namespacePrefix>`) absent?
- [ ] Does the filename match the DeveloperName exactly?

---

## Output Expectations

- **Create / Update**: `managedEventSubscriptions/<DeveloperName>.managedEventSubscription-meta.xml` — this is the only file to generate
- **Delete**: instructions to remove the file and deploy via `destructiveChanges.xml`
- **Read**: display of existing file contents

---

## Cross-Skill Integration

| Need | Delegate to |
|------|-------------|
| Create the platform event channel (`__e`) being subscribed to | `platform-custom-object-generate` skill |
| Subscribe via Flow (Process Automation) | `automation-flow-generate` skill |
| Deploy metadata to org | `platform-metadata-deploy` skill |

---

## Reference File Index

| File | When to read |
|------|-------------|
| `assets/managed-event-subscription-template.xml` | Before generating any new subscription — use as starting structure |
| `references/topic-name-formats.md` | When setting `<topicName>` — covers platform events, change events, and custom channels |
| `references/update-constraints.md` | During Update workflow — to check which fields are immutable post-creation |
| `references/delete-guide.md` | During Delete workflow — for destructive change deployment procedure |

© forcedotcom · Apache-2.0 · forcedotcom/sf-skills

Похожие скиллы

Все скиллы по теме «Бэкенд и API» →
mcp-builder официальный anthropics Скилл проводит через создание MCP-сервера на TypeScript или Python: от изучения протокола до тестов и оценки качества. 130 949установок claude-api официальный anthropics Справочник по Anthropic SDK и API Claude для генерации кода без устаревших параметров и выдуманных методов. 74 198установок lark-im larksuite Скилл подключает Lark IM к агенту: он отправляет сообщения, ищет историю, управляет чатами и файлами. Подойдёт для задач вокруг командных коммуникаций. CX Codex +1 472 900установок lark-event larksuite Слушает события Lark/Feishu и отдаёт их потоком NDJSON. Подходит для ботов, обработчиков сообщений и долгих подписчиков. CX Codex +1 466 800установок caveman-discover JuliusBrussee Находит точки вызова LLM в репозитории и размечает их воркфлоу для Caveman Cloud, чтобы расходы на токены не сливались в одну общую кучу. CX Codex +1 104 400установок migration JuliusBrussee Скилл задаёт правила безопасных миграций схем, данных и API с обязательным откатом. Пригодится при изменениях, где нельзя терять данные или ломать совместимость. CX Codex +1 103 900установок

Из того же набора185

dx-devops-test-failures-analyze Разбирает сбои тестов Salesforce DevOps Center и предупреждения Code Analyzer простыми словами. Помогает понять корень ошибки и создать задачу WorkItem. CX Codex +1 5 100установок experience-ui-bundle-features-generate Ставит в Salesforce UI bundle готовые пакеты фич — вход, выход, защищённые маршруты, поиск — вместо того чтобы писать их руками. CX Codex +1 5 100установок platform-trust-archive-manage Скилл для работы с Salesforce Archive через Archive Connect API: поиск, восстановление, маскирование и удаление архивных записей. CX Codex +1 5 100установок integration-eventing-cdc-configure Генерирует метаданные Salesforce Change Data Capture для стандартных и кастомных объектов. Пригодится при настройке подписок на события изменений. CX Codex +1 5 100установок experience-cms-brand-apply Находит бренд в Salesforce CMS, вытаскивает его правила и применяет голос, тон и стиль к тому, что генерирует агент. CX Codex +1 5 000установок experience-ui-bundle-agentforce-client-generate Встраивает клиент Agentforce Conversation в React и Angular UI Bundle: находит нужный пакет, проверяет agentId и подключает компонент на страницу. CX Codex +1 5 000установок dx-devops-test-suite-run Запускает наборы тестов DevOps Center на стадиях пайплайна Salesforce и опрашивает статус до завершения. Пригодится перед продвижением изменений и для повторной проверки Quality Gate. CX Codex +1 5 000установок dx-devops-test-suite-assignments-configure Подбирает тест-наборы под конкретный коммит и раскладывает их по стадиям пайплайна DevOps Center. Пригодится, когда непонятно, что запускать после правок. CX Codex +1 5 000установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой