Examples & Recipes
Common prompts you can give your AI assistant once Grovs is connected, and the tools each one ends up calling.
Once Grovs is connected via MCP, you can manage links and projects in plain English. This page collects a handful of prompts that cover the workflows people actually use, alongside the tool calls and output you'll see.
These assume you've already connected the server. If not, see Claude Code, Claude Desktop, Cursor, Windsurf, or ChatGPT.
List your projects
"List my Grovs projects"
The assistant calls get_status. You get back your account info and a table of every project you have access to.
# Account Overview
User: Alice ([email protected])
| Project | Instance ID | Prod Project ID | Test Project ID | Prod Domain |
|----------------|-------------|-----------------|-----------------|---------------------|
| Marketing Site | inst_a1b2c3 | MrxsQ7 | 736s9j | mark5bea.grovs.link |
| Mobile App | inst_d4e5f6 | pmJsbM | jNlszp | mob1d7ef.grovs.link |Most tools want a Prod or Test Project ID (the columns in the middle), not the Instance ID. The Instance ID is only used by get_usage and configure_sdk. The assistant will hold onto these IDs for the rest of the session.
Create a new project
"Create a new project named my-test-with-claude"
This calls create_project and returns the new instance:
# Project Created
Instance ID: zE3sye
URI scheme: mytestaf498aba468d
Production project: my-test-with-claude (ID: 2DsyOW)
Test project: my-test-with-claude (ID: G4sRDr)You can immediately create links, configure redirects, or set up the SDK in the same conversation.
Create a deep link
"Create a link for my new project that goes to appssemble.com"
The assistant calls create_link with custom_redirects set per platform. Because the user said the link should go to a URL (not open the app), it uses the object form with open_app_if_installed: false to skip the app entirely:
{
"project_id": "2DsyOW",
"name": "appssemble",
"custom_redirects": {
"ios": { "url": "https://appssemble.com", "open_app_if_installed": false },
"android": { "url": "https://appssemble.com", "open_app_if_installed": false },
"desktop": { "url": "https://appssemble.com", "open_app_if_installed": false }
}
}The output shows the live URL and the configured redirects:
# Link Created
URL: https://myteb045.grovs.link/appssemble
Name: appssemble | Path: /appssemble | ID: 82244
Custom redirects: iOS → https://appssemble.com, Android → https://appssemble.com, Desktop → https://appssemble.com
**Next steps:** Use get_link_analytics with path "appssemble" to view metrics, or search_links to list all links.Redirect modes
custom_redirects accepts three forms per platform. Pick based on what the user actually wants:
"Create a link that opens my app, or goes to the App Store if it's not installed"
Omit custom_redirects entirely — that's the default behavior:
{
"project_id": "2DsyOW",
"name": "welcome",
"title": "Welcome"
}"Create a link that opens my app, or sends users to our landing page if they don't have it"
Use the string form — opens the app if installed, otherwise falls back to the URL:
{
"project_id": "2DsyOW",
"name": "landing",
"custom_redirects": {
"ios": "https://appssemble.com",
"android": "https://appssemble.com",
"desktop": "https://appssemble.com"
}
}"Create a link that always goes to our blog, even for users who have the app"
Use the object form with open_app_if_installed: false — skips the app and always redirects to the URL:
{
"project_id": "2DsyOW",
"name": "blog",
"custom_redirects": {
"ios": { "url": "https://appssemble.com/blog", "open_app_if_installed": false },
"android": { "url": "https://appssemble.com/blog", "open_app_if_installed": false },
"desktop": { "url": "https://appssemble.com/blog", "open_app_if_installed": false }
}
}You can mix modes across platforms — e.g. omit desktop to use the store fallback while setting a custom URL for ios and android.
Asking what was set
"What redirect URLs have you set for my project?"
The assistant keeps state within a session, so it can answer from memory without making another call:
Link: appssemble (ID: 82244)
URL: https://myteb045.grovs.link/appssemble
Custom redirects (open_app_if_installed: false):
- iOS → https://appssemble.com
- Android → https://appssemble.com
- Desktop → https://appssemble.com
Project-level settings: NOT configured
- configure_redirects (project-wide fallbacks)
- configure_sdk (bundle IDs, App Store ID)List and search links
"Show me all the links in my new project with their metrics"
This calls search_links and renders a table:
# Links (1 total, page 1/1)
| # | Name | Path | Views | Opens | Installs | Active |
|---|------------|------------|-------|-------|----------|--------|
| 1 | appssemble | appssemble | 1 | 0 | 0 | Yes |For larger projects, ask for filters or sorting:
"Show me the top 5 links by views in the last 7 days"
That calls get_top_links with start_date, end_date, and limit: 5.
Update and archive links
"Update the appssemble link to use 'Visit Appssemble' as the preview title"
The assistant calls update_link with the link ID it remembers from the previous turn and title: "Visit Appssemble". Only the changed field is sent.
"Archive the old promo link"
The assistant searches for it first (search_links with search: "promo"), confirms which one you mean if multiple match, then calls archive_link.
Archiving is permanent. The link stops redirecting and there is no undo. Your assistant should always confirm before calling archive_link or archive_campaign.
Check analytics
"How are my links performing this month?"
The assistant calls get_analytics_overview with the current month's date range. The output compares the current period against the previous one:
# Analytics Overview
**Current period:**
Views: 12400 | Opens: 5200 | Installs: 890
App opens: 4100 | New users: 720 | Returning: 320 (64.8%)
Reinstalls: 12 | Referred: 45
**Previous period:**
Views: 9800 | Opens: 4100 | Installs: 650
App opens: 3200 | New users: 580 | Returning: 250 (60.2%)
Reinstalls: 8 | Referred: 32For per-link analytics:
"How is the appssemble link performing?"
That calls get_link_analytics with the link's path. You can also paste the full URL. Both get_link and get_link_analytics extract the path automatically:
"Show analytics for
https://myteb045.grovs.link/appssemble"
Campaigns
Campaigns let you group related links and track aggregated metrics.
"Create a Summer Sale campaign and add three links to it: homepage, product page, and checkout"
The assistant runs this as two steps:
create_campaignwithname: "Summer Sale"returnsid: 42create_linkwithcampaign_id: 42for each of the three URLs
To review campaign performance later:
"Show me how my campaigns are doing this quarter"
That calls list_campaigns with the date range. The result includes views, opens, installs, and revenue per campaign.
Check usage
Grovs bills based on monthly active users (MAU). To see where you stand:
"What's the usage on my new project?"
This calls get_usage with the instance ID:
# Usage
Current MAU: 320 / 10000
Quota exceeded: No
Has subscription: NoIf you've gone over the free tier without a paid plan, you'll see a warning that deep links are no longer routing:
Current MAU: 12000 / 10000
Quota exceeded: Yes
Has subscription: No
WARNING: Usage exceeded. Your deep links are not working.
Subscribe to a paid plan to restore service.The same warning shows up at the bottom of get_status whenever any of your instances is over quota, so you'll catch it even when you're just listing projects.
Configure projects
Project-wide redirects
"Set the iOS fallback for my new project to my App Store page, and the Android fallback to Google Play"
This calls configure_redirects with ios_redirect and android_redirect. Settings for other platforms are left alone.
SDK integration
"Configure the SDK for my new project with iOS bundle com.example.app and Android package com.example.app"
This calls configure_sdk with ios_bundle_id and android_package_name. You need this if you want links to open the actual app instead of falling back to a URL.
Multi-step workflows
A single prompt can trigger several tool calls in sequence.
Quarterly review
"Give me a quarterly review of my Marketing Site project: top 10 links, total views vs last quarter, and which campaigns drove the most installs"
What the assistant does:
get_statusto find the project ID, if it's not already in contextget_top_linksfor this quarter,limit: 10get_analytics_overviewfor this quarter, which auto-compares to the previous onelist_campaignssorted byinstallsdescending
Bulk link creation
"Create 5 links for my Black Friday campaign, one for each landing page: /home, /deals, /electronics, /clothing, /toys"
What the assistant does:
create_campaignwithname: "Black Friday"create_linkx5, each with the campaign ID from step 1
Cleanup
"Find all links in the test project that haven't been opened in the last 90 days and archive them"
What the assistant does:
search_linkswith the project ID, paginating through all results- Filter by
total_opensand the date range - For each match, ask you to confirm, then call
archive_link
For destructive bulk operations, the assistant should always summarize what it's about to do and wait for confirmation before proceeding.
Tips
- Be explicit about which project when you have many. The assistant will infer from context, but names help.
- Paste full URLs when asking about a link.
get_linkandget_link_analyticsaccept either a path slug or a full URL. - Reference earlier results in follow-ups. The assistant keeps context for the whole session.
- Ask for a dry run first on bulk changes: "List the links you'd archive first, don't archive yet."
- Combine tools in one prompt: "Create a link to example.com and then show me analytics for it."