Agent Skills: Hootsuite Debug Bundle

|

UncategorizedID: jeremylongshore/claude-code-plugins-plus-skills/hootsuite-debug-bundle

Install this agent skill to your local

pnpm dlx add-skill https://github.com/jeremylongshore/claude-code-plugins-plus-skills/tree/HEAD/plugins/saas-packs/hootsuite-pack/skills/hootsuite-debug-bundle

Skill Files

Browse the full folder contents for hootsuite-debug-bundle.

Download Skill

Loading file tree…

plugins/saas-packs/hootsuite-pack/skills/hootsuite-debug-bundle/SKILL.md

Skill Metadata

Name
hootsuite-debug-bundle
Description
'Collect Hootsuite debug evidence for support tickets and troubleshooting.

Hootsuite Debug Bundle

Overview

Collect Hootsuite API connectivity status, social profile health, scheduled post state, and OAuth token validity into a single diagnostic archive. This bundle helps troubleshoot failed post scheduling, disconnected social accounts, media upload errors, and API authentication problems.

Debug Collection Script

#!/bin/bash
set -euo pipefail
BUNDLE="debug-hootsuite-$(date +%Y%m%d-%H%M%S)"
mkdir -p "$BUNDLE"

# Environment check
echo "=== Hootsuite Debug Bundle ===" | tee "$BUNDLE/summary.txt"
echo "Generated: $(date -u +%Y-%m-%dT%H:%M:%SZ)" >> "$BUNDLE/summary.txt"
echo "HOOTSUITE_API_KEY: ${HOOTSUITE_API_KEY:+[SET]}" >> "$BUNDLE/summary.txt"
echo "HOOTSUITE_ACCESS_TOKEN: ${HOOTSUITE_ACCESS_TOKEN:+[SET]}" >> "$BUNDLE/summary.txt"

# API connectivity — user profile endpoint
HTTP=$(curl -s -o /dev/null -w "%{http_code}" \
  -H "Authorization: Bearer ${HOOTSUITE_ACCESS_TOKEN}" \
  https://platform.hootsuite.com/v1/me 2>/dev/null || echo "000")
echo "API Status: HTTP $HTTP" >> "$BUNDLE/summary.txt"

# User profile and social profiles
curl -s -H "Authorization: Bearer ${HOOTSUITE_ACCESS_TOKEN}" \
  https://platform.hootsuite.com/v1/me > "$BUNDLE/me.json" 2>&1 || true
curl -s -H "Authorization: Bearer ${HOOTSUITE_ACCESS_TOKEN}" \
  https://platform.hootsuite.com/v1/socialProfiles > "$BUNDLE/profiles.json" 2>&1 || true

# Scheduled posts and rate limit headers
curl -s -D "$BUNDLE/rate-headers.txt" -H "Authorization: Bearer ${HOOTSUITE_ACCESS_TOKEN}" \
  "https://platform.hootsuite.com/v1/messages?limit=10&state=SCHEDULED" > "$BUNDLE/scheduled-posts.json" 2>&1 || true

tar -czf "$BUNDLE.tar.gz" "$BUNDLE" && rm -rf "$BUNDLE"
echo "Bundle: $BUNDLE.tar.gz"

Analyzing the Bundle

tar -xzf debug-hootsuite-*.tar.gz
cat debug-hootsuite-*/summary.txt                  # Auth + connectivity
jq '.data[] | {id, type, socialNetworkId}' debug-hootsuite-*/profiles.json  # Connected accounts
jq '.data[] | {id, state, scheduledSendTime}' debug-hootsuite-*/scheduled-posts.json
grep -i "ratelimit\|retry" debug-hootsuite-*/rate-headers.txt

Common Issues

| Symptom | Check in Bundle | Fix | |---------|----------------|-----| | API returns 401 | summary.txt shows HTTP 401 | OAuth token expired; re-authorize via Hootsuite app OAuth flow | | Social profile disconnected | profiles.json shows missing or error-state profile | Re-connect the social account in Hootsuite dashboard > Social Accounts | | Scheduled post failed | scheduled-posts.json shows FAILED state | Check media URLs are accessible; verify profile has posting permissions | | Rate limited (429) | rate-headers.txt shows Retry-After | Reduce scheduling frequency; batch post creation requests | | Missing profiles | profiles.json returns fewer accounts than expected | Check team permissions; verify plan supports connected account count |

Automated Health Check

async function checkHootsuite(): Promise<void> {
  const token = process.env.HOOTSUITE_ACCESS_TOKEN;
  if (!token) { console.error("[FAIL] HOOTSUITE_ACCESS_TOKEN not set"); return; }

  const res = await fetch("https://platform.hootsuite.com/v1/me", {
    headers: { Authorization: `Bearer ${token}` },
  });
  console.log(`[${res.ok ? "OK" : "FAIL"}] API: HTTP ${res.status}`);

  if (res.ok) {
    const profiles = await fetch("https://platform.hootsuite.com/v1/socialProfiles", {
      headers: { Authorization: `Bearer ${token}` },
    });
    const data = await profiles.json();
    console.log(`[INFO] Connected profiles: ${data.data?.length ?? 0}`);
  }
}
checkHootsuite();

Resources

Next Steps

See hootsuite-common-errors.