Claude-code-plugins-plus linktree-core-workflow-b
install
source · Clone the upstream repo
git clone https://github.com/jeremylongshore/claude-code-plugins-plus-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/jeremylongshore/claude-code-plugins-plus-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/saas-packs/linktree-pack/skills/linktree-core-workflow-b" ~/.claude/skills/jeremylongshore-claude-code-plugins-plus-linktree-core-workflow-b && rm -rf "$T"
manifest:
plugins/saas-packs/linktree-pack/skills/linktree-core-workflow-b/SKILL.mdsource content
Linktree — Analytics & Reporting
Overview
Pull click tracking data, measure conversion rates, and extract audience insights from your Linktree profile. Use this workflow when you need to understand which links drive traffic, where your audience comes from, and how engagement trends over time. This is the secondary workflow — for link creation and profile management, see
linktree-core-workflow-a.
Instructions
Step 1: Fetch Overall Profile Analytics
const analytics = await client.analytics.get({ profile_id: profile.id, period: 'last_30_days', granularity: 'daily', }); console.log(`Total views: ${analytics.views}`); console.log(`Total clicks: ${analytics.clicks}`); console.log(`CTR: ${(analytics.clicks / analytics.views * 100).toFixed(1)}%`); analytics.daily.forEach(d => console.log(` ${d.date}: ${d.views} views, ${d.clicks} clicks`) );
Step 2: Rank Per-Link Performance
const linkStats = await client.analytics.byLink({ profile_id: profile.id, period: 'last_7_days', sort: 'clicks_desc', }); linkStats.forEach((s, i) => console.log(`#${i + 1} ${s.title}: ${s.clicks} clicks (${s.unique_visitors} unique, CTR ${s.ctr}%)`) );
Step 3: Pull Audience Demographics
const audience = await client.analytics.audience({ profile_id: profile.id, period: 'last_30_days', }); console.log('Top locations:', audience.locations.slice(0, 5).map(l => `${l.country}: ${l.pct}%`)); console.log('Top referrers:', audience.referrers.slice(0, 5).map(r => `${r.source}: ${r.visits}`)); console.log('Devices:', `Mobile ${audience.devices.mobile}% / Desktop ${audience.devices.desktop}%`);
Step 4: Generate a Conversion Report
const report = await client.analytics.report({ profile_id: profile.id, period: 'last_30_days', metrics: ['views', 'clicks', 'ctr', 'unique_visitors', 'top_referrers'], format: 'json', }); console.log(`Report period: ${report.start_date} to ${report.end_date}`); console.log(`Highest CTR link: ${report.top_link.title} (${report.top_link.ctr}%)`); console.log(`Total unique visitors: ${report.unique_visitors}`);
Error Handling
| Issue | Cause | Fix |
|---|---|---|
| Expired or invalid bearer token | Re-authenticate via OAuth flow |
| Free-tier profile without analytics | Upgrade to Pro plan for analytics access |
| Wrong profile_id | Verify with |
| Unsupported date range format | Use , , or ISO dates |
| Empty daily array | Profile has zero traffic in range | Widen the date range or verify profile is published |
Output
A successful workflow produces daily view/click time series, a ranked list of link performance with CTR, audience demographics broken down by location, referrer, and device type, and a summary conversion report identifying top-performing links.
Resources
Next Steps
See
linktree-sdk-patterns for OAuth setup and rate-limit handling.