Skip to main content
Instead of building a one-off usage deck before every renewal, let a scheduled DinoAI agent do the first pass: find the accounts renewing soon, pull each one’s usage and health from the warehouse, and write a plain-English summary straight onto the HubSpot record. Your account team starts the week with the numbers already on the account, not buried in a dashboard nobody opened. This guide starts deliberately small: one agent built in the Agent UI and one Bolt schedule. Once the basic loop works, the Extend the Agent section shows where to take it next.
Before You Start

What You’ll Build

  • One DinoAI agent (renewal-prep-reporter) that finds companies with a renewal in the next 30 days, queries their usage from your marts, and adds a summary note to each HubSpot company
  • A Bolt schedule that runs it every Monday at 07:00
The note it writes onto each account is short and scannable:
1

Create the Agent

In the Agent app, open Agents, select New agent, and start from Start from scratch. Fill in the builder fields below, replacing the table names and the renewal property with your own. See Build an agent in the UI for a tour of the builder.Name: renewal-prep-reporterRole:
Goal:
Backstory:
Model: leave Auto selected.Allowed tools: read_file, run_sql_query, search_hubspot_objects, get_hubspot_object, list_hubspot_properties, add_hubspot_note.Output: leave empty. This agent writes its result to HubSpot directly rather than to a channel.Then select Deploy: choose Just here to make the agent live in the workspace immediately (ideal while you tune it), or Open a pull request to commit it as .dinoai/agents/renewal-prep-reporter.yml and govern it as code. See Creating Agents in the App.
Start read-only if you want to review first. Leave add_hubspot_note off the allowlist for the first few runs so the agent drafts each summary in the run logs without writing anything. Add it back once the notes read the way you want. For the full list of HubSpot actions and how their approvals work, see the HubSpot tool reference.
Add your warehouse’s metadata tools to the allowlist so the agent looks up table structure instead of guessing, for example list_all_columns_in_snowflake_table on Snowflake or list_all_columns_in_bigquery_table on BigQuery. See the Tools Reference.
2

Run It Once

In the Bolt schedule editor, click Add command, pick Run Paradime DinoAI Agent, choose renewal-prep-reporter, and set the task to:
Save and hit Run now. The agent’s messages stream into the Bolt run logs, and the notes land on the matching HubSpot companies. Use the first couple of runs to tune the metric list and the note wording in the goal until the summary reads the way a CSM would want it.
Watching a run. A full run can take a few minutes across several accounts. The Bolt run logs stream every agent message live, and the background agent UI shows per-session traces of each tool call and lets you pause a run that has gone off on a tangent.
3

Schedule It Weekly

In the same schedule, open the trigger settings, choose the Cron trigger, and set it to run every Monday at 07:00 in your timezone. Save and deploy the schedule.Monday 07:00 puts a fresh note on every renewing account before the account team plans its week. That’s it: the basic loop is done.

Extend the Agent

Each of these is an independent upgrade. Add them one at a time, only when the basic note starts feeling too shallow. Post a run summary to Slack. Add the Slack integration and post_slack_message to the allowlist, and tell the agent to post one line at the end listing the accounts it prepped, so the CS team sees the run happened without opening HubSpot. Score the renewal risk. Add a line to the goal telling the agent to label each account green, amber, or red based on the usage trend and idle features, and put the label in the header line so a glance down the accounts shows where to focus. Break usage down by segment. Tell the agent to split a moved metric by market, product area, or seat type, so the note says “driven by the analyst seats” instead of just “down”. Move the definitions into a spec file. When the metric list and thresholds outgrow the Goal field, put them in a markdown file like .dinoai/specs/renewal-prep.md (metrics, table locations, what counts as a risk) and change step 1 of the goal to “Read the spec file first”. CS ops then evolves the definition with a normal PR, without touching the agent. Check pipeline health before reporting. Add get_all_sources and get_model_health (the dbt Discovery tools) to the allowlist and tell the agent to confirm the usage marts are fresh before it writes anything. This is what separates “usage dropped” from “the table did not refresh”. Update a deal property, not just a note. Add update_hubspot_object to the allowlist and have the agent set a custom “usage health” property on the renewal deal, so the signal shows up in your pipeline views and reports, not only on the record.