# suppress-hard-bounced

Находит недоставляемые контакты в HubSpot через API, выгружает аудит-лог и помогает перевести адреса в non-marketing.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · ★ 78
- Автор: tomgranot
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/TomGranot/hubspot-admin-skills/tree/HEAD/skills/suppress-hard-bounced/SKILL.md
- Обновлён: 2026-10-13
- HTML: https://affpapa.org/nevibecode/skills/suppress-hard-bounced

## Что делает

Скилл решает задачу гигиены базы контактов в HubSpot. Постоянные сбои доставки (hard bounce) вредят репутации домена у почтовых провайдеров вроде Gmail или Yahoo, а также тратят оплаченные лимиты маркетинговых контактов. Инструмент сканирует контакты со свойством `hs_email_hard_bounce_reason_enum`, группирует их по причинам сбоя, считает повторные возвраты и сохраняет отчёт в CSV.

Процесс разбит на четыре этапа: планирование, аудит скриптом `scripts/before.py`, ручные действия в интерфейсе и проверка через `scripts/after.py`. Для работы понадобятся Python 3.10+ с менеджером пакетов `uv` и токен доступа HubSpot (`HUBSPOT_ACCESS_TOKEN`) в файле `.env` с правами `crm.objects.contacts.read`, `crm.lists.read` и `crm.lists.write`.

Главное ограничение связано с архитектурой HubSpot: поле `hs_marketable_status` доступно через API только для чтения. Поэтому автоматически снять маркетинговый статус скриптом невозможно — фактическое подавление контактов пользователь выполняет вручную через интерфейс или внутренний workflow, для чего нужны права Super Admin или Marketing Hub Admin.

## Требования
- Работает с: HubSpot

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add TomGranot/hubspot-admin-skills --skill suppress-hard-bounced -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/suppress-hard-bounced/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/suppress-hard-bounced/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add TomGranot/hubspot-admin-skills --skill suppress-hard-bounced -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/suppress-hard-bounced/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add TomGranot/hubspot-admin-skills --skill suppress-hard-bounced -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/suppress-hard-bounced/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install TomGranot/hubspot-admin-skills suppress-hard-bounced
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/suppress-hard-bounced/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add TomGranot/hubspot-admin-skills --skill suppress-hard-bounced -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/TomGranot/hubspot-admin-skills --path skills/suppress-hard-bounced
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/suppress-hard-bounced/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add TomGranot/hubspot-admin-skills --skill suppress-hard-bounced -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/TomGranot/hubspot-admin-skills/tree/HEAD/skills/suppress-hard-bounced/SKILL.md

## Когда брать
- найти в HubSpot контакты с постоянными ошибками доставки через API
- выгрузить локальный CSV-отчёт по сбойным адресам и причинам возвратов
- изолировать адреса с 3 и более сбоями для проверки перед удалением
- подготовить данные для ручного перевода базы в non-marketing статус

## Примеры запросов агенту
- Проверь через suppress-hard-bounced все hard-bounce контакты в HubSpot
- Запусти аудит недоставляемых email и выгрузи отчёт в CSV
- Покажи разбивку причин отказов доставки в HubSpot перед изменением статусов

## Похожие
- [seo-audit](https://affpapa.org/nevibecode/skills/coreyhaines31-seo-audit.md) — скилл · 238500 установок
- [programmatic-seo](https://affpapa.org/nevibecode/skills/coreyhaines31-programmatic-seo.md) — скилл · 150800 установок
- [copy-editing](https://affpapa.org/nevibecode/skills/coreyhaines31-copy-editing.md) — скилл · 149800 установок
- [marketing-ideas](https://affpapa.org/nevibecode/skills/coreyhaines31-marketing-ideas.md) — скилл · 147400 установок
- [sales-enablement](https://affpapa.org/nevibecode/skills/sales-enablement.md) — скилл · 119400 установок
- [revops](https://affpapa.org/nevibecode/skills/revops.md) — скилл · 114000 установок

Из того же набора: [tomgranot/hubspot-admin-skills](https://affpapa.org/nevibecode/by/tomgranot/hubspot-admin-skills.md) — 37 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
