跳到正文
cccskills
免费在 GitHub 公开

renewal-prep

Prepare renewal packets and outreach email drafts from HubSpot deals at 90, 60, and 30 days before renewal. Check existing Google Calendar meetings, flag account risks, and leave customer contact and pricing decisions to the account owner.

中文简介正在准备中。当前显示英语简介。

原文查看原文说明

Runbook for turning a HubSpot renewal date into a prepped packet and a drafted outreach email for {{projectName}}. Covers the 90/60/30-day windows, what belongs in a renewal packet, at-risk signals, Google Calendar cross-checking, and the human approval gate before anything sends or discounts.

查看安装方法

适用场景

  • Preparing account materials before contract renewal
  • Drafting outreach around existing renewal meetings
  • Identifying stalled deals and renewal risks

包含的文件(1)

  • SKILL.md6.0 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

<skill name="renewal-prep"> <overview> A renewal date on a HubSpot deal is only useful if someone acts on it early. A daily sweep reads every open deal's `{{renewal_date_property}}`, finds the accounts crossing 90, 60, or 30 days out, builds a renewal packet — usage, value delivered, and expansion ideas — checks Google Calendar for an existing renewal conversation, and drafts the outreach. Anything that looks stalled, shrinking, or gone quiet is flagged as at-risk in the same run. Nothing reaches a customer and no discount is ever applied until the account owner reviews it.

Fresh session per sweep — state lives on the HubSpot deal record itself (a kortix_renewal_stage_alerted property marks the last window surfaced), not in a local ledger file. A sweep can find several accounts at once; handle each as an independent unit — a failure preparing one account's packet is logged and skipped, never blocking any other account in the same sweep. </overview>

<when-to-load> - The daily renewal sweep fires. - A human asks the agent to check a specific account's renewal status or re-run the sweep. - The renewal playbook (packet format, at-risk criteria, outreach tone) changes and needs to be reflected in the next run. </when-to-load> <workflow>

Step 0 — Orient: find what crossed a window

Query HubSpot for open deals with {{renewal_date_property}} set:

GET /crm/v3/objects/deals/search
  filterGroups: [
    { propertyName: "{{renewal_date_property}}", operator: "LTE", value: <today + 90d> },
    { propertyName: "dealstage", operator: "NEQ", value: "closedlost" }
  ]
  properties: ["{{renewal_date_property}}", "amount", "dealstage", "hubspot_owner_id",
               "kortix_renewal_stage_alerted", "notes_last_updated", "hs_lastmodifieddate"]

For each deal, compute days-to-renewal and bucket it into 90 / 60 / 30. Skip a deal if kortix_renewal_stage_alerted already equals that bucket — it was packeted on a prior run. A deal moving into a new, tighter bucket (e.g. 90 → 60) always gets a fresh packet, since more has likely changed.

Step 1 — Read the account's history

Pull the deal's notes, stage history, contract value, and the owner (hubspot_owner_id → name). Read prior call and email activity to reconstruct what's been delivered and discussed since the account signed or last renewed.

Step 2 — Build the renewal packet

Assemble, in order:

  1. Usage and value delivered — what the account has actually gotten out of the product since the last renewal, drawn from notes and activity, in concrete terms (not "engaged well" — the specific thing that shipped or got used).
  2. Expansion ideas — one or two concrete, specific opportunities grounded in what this account does and hasn't used yet. Never a generic "consider upgrading" line.
  3. Contract terms — current value, renewal date, and term length.

Step 3 — Check Google Calendar (read-only)

Look for an existing renewal or QBR meeting near the renewal date. If one exists, reference it in the draft ("ahead of our call on ...") instead of proposing a new one. This is read-only — never create, move, or accept an event.

Step 4 — Flag at-risk signals

Independent of the 90/60/30 bucket, call out a deal as at-risk when it shows:

SignalWhat it means
Stage unchanged for an extended periodDeal has stalled
Contract value trending down vs. last termAccount may be scaling back
No logged activity in a long stretchRelationship's gone quiet
Notes mentioning a competitor, budget freeze, or churn intentExplicit risk

At-risk deals get named specifically in {{alert_channel}}, with the signal that triggered the flag — every day they remain at-risk, not just once.

Step 5 — Draft the outreach

Write the renewal email using the packet: lead with the value delivered, name the expansion idea if one fits naturally, and reference the scheduled conversation if Step 3 found one. Hold it in {{draft_channel}} for the account owner. Never send it, and never write a specific discount, credit, or price change into the draft — if the account's situation calls for a pricing conversation, say so in the packet and let the owner handle it.

Step 6 — Post the radar

Post one summary to {{alert_channel}}: accounts newly crossing a 90/60/30 window (owner, renewal date, bucket), and the at-risk list with its signals. This is the read summary; the packet and draft are the deliverables in {{draft_channel}}.

Step 7 — Write the marker back

Set kortix_renewal_stage_alerted on each packeted deal to the bucket just surfaced (with a timestamp). This is the only HubSpot write — never the deal stage, amount, or pipeline.

</workflow> <guardrails> - **Never send.** The renewal outreach is always a draft in {{draft_channel}} for the account owner to review, edit, and send. - **Never discount.** The agent never applies, offers, or suggests a specific discount, credit, or price change. Pricing stays with the account owner. - **Calendar is read-only.** Check for an existing conversation; never create, move, or accept an event. - **HubSpot writes are scoped** to `kortix_renewal_stage_alerted`. Never change deal stage, amount, or pipeline. - **No duplicate packets.** Always check `kortix_renewal_stage_alerted` before building a new packet — a deal already surfaced for its current bucket isn't re-packeted, though a move into a tighter bucket always gets a fresh one. - **At-risk flags aren't deduplicated.** Unlike packets, an at-risk flag reappears every day the signal still holds — it's a nudge, not a one-time event. - **Scoped secrets.** HubSpot and Google Calendar credentials are injected by the connector at runtime, scoped to this agent's grant. </guardrails> </skill>

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Review Slack access requests against Okta role and team information, then prepare narrowly scoped GitHub or AWS IAM permissions. Apply changes only after an eligible person's approval and record the grant, reasoning, approver, and timestamp.

中文简介正在准备中。当前显示英语简介。

  • Reviewing GitHub repository access requests from Slack
  • Preparing AWS IAM permissions for a specific task
  • Routing sensitive access requests for additional review
kortix-ai/suna2万2026年10月18日 更新

Research companies and people before outreach or meetings. Combines business profiles, recent news, hiring signals, and key contacts into a sourced brief with talking points and suggested questions, adding relationship history when CRM data is connected.

中文简介正在准备中。当前显示英语简介。

  • Research a prospective customer before outreach
  • Prepare background information for meeting attendees
  • Compare a competitor's products and positioning
kortix-ai/suna2万2026年10月18日 更新

Review daily Google Ads and Meta Ads results for budget pacing, declining performance, and unusual activity. Get prioritized findings with supporting numbers and concrete recommendations for a marketing team to assess and carry out.

中文简介正在准备中。当前显示英语简介。

  • Checking whether campaign budgets are being spent on schedule
  • Investigating rising acquisition costs or falling ad returns
  • Finding ads and keywords that spend without converting
kortix-ai/suna2万2026年10月18日 更新

Automate website tasks such as navigating pages, filling forms, clicking buttons, taking screenshots, and extracting data. The skill also supports web app testing, with specialized guides for Electron desktop apps, Slack, and cloud browsers.

中文简介正在准备中。当前显示英语简介。

  • Automate form entry and page navigation
  • Capture screenshots and extract page data
  • Explore web apps for bugs
kortix-ai/suna2万2026年10月18日 更新

Process emailed vendor invoices by extracting details, comparing them with purchase orders and invoice history, and recording duplicates, overcharges, or missing orders. Summarize results in Slack for human review; payment approval and execution remain with people.

中文简介正在准备中。当前显示英语简介。

  • Checking incoming invoices against purchase orders
  • Finding duplicate invoices and likely resends
  • Reviewing unit prices and remaining order balances
kortix-ai/suna2万2026年10月18日 更新

billing

免费

Guide changes to Kortix billing code, admin controls, and pricing screens. Explain how plans, trials, enterprise contracts, and access exceptions should work, where pricing is defined, and which audited routes must handle account changes.

中文简介正在准备中。当前显示英语简介。

  • Update billing logic and its specification together
  • Review how trials and enterprise contracts are handled
  • Find the code that defines prices and allowances
kortix-ai/suna2万2026年10月18日 更新

查看 kortix-ai 的全部技能

报告此技能的问题