# First prompt → first app

Riff builds what you describe. The trick is knowing **how to describe**. Use these light mental models to turn a fuzzy idea into a prompt the agent can act on—without needing technical terms.

### How to ask for what you want

Say what goes in, what happens, what comes out, and when it runs. That’s it.

> "Build an app **\[dashboard/automation/agent]** that **takes \[inputs]**, **\[process]**, and **outputs \[outputs]**. **Trigger** it **\[when/how]**."

### The IPOT cheat sheet (at a glance)

<table data-header-hidden data-full-width="true"><thead><tr><th></th><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>I — Inputs</strong></td><td><strong>P — Process</strong></td><td><strong>O — Outputs</strong></td><td><strong>T — Triggers</strong></td></tr><tr><td>Where your data comes from.</td><td>What you do to the data.</td><td>What it looks like + where it goes.</td><td>How/when it runs.</td></tr><tr><td><ul><li>CSV upload</li><li>Google Sheet</li><li>HubSpot, Salesforce, Zendesk, Notion, etc.</li><li>Manual form input.</li><li>API</li></ul></td><td><p></p><ul><li>AI agent task</li><li>Summarize with AI</li><li>Classify with AI</li><li>Score </li><li>Calculate KPIs.</li><li>Search</li><li>Store</li></ul></td><td><ul><li>Charts/tables in UI</li><li>Downloadable CSV/XLSX</li><li>Slack or email message</li><li>Updated CRM record</li><li>New Google Sheet tab</li><li>API response.</li></ul></td><td><ul><li>Button in the UI</li><li>On file upload</li><li>Hourly/daily schedule</li><li>Webhook (e.g., “deal moved to Negotiation”).</li></ul></td></tr></tbody></table>

### Ready-to-use examples

{% columns fullWidth="true" %}
{% column %}

<div data-with-frame="true"><figure><img src="https://4203676568-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fmj3x7kCuQ8vAs0u0uIPo%2Fuploads%2FkJa7AY6bW9AIiCrdrE07%2Fimage.png?alt=media&#x26;token=ee4a1baf-373e-4ad9-99d4-7e11e090313a" alt="" width="366"><figcaption></figcaption></figure></div>
{% endcolumn %}

{% column %}

<h4 align="center"></h4>

<h4 align="center"><a href="#sales"><strong>Sales</strong></a></h4>

<h4 align="center">HubSpot Pipeline Dashboard</h4>

<p align="center">A dashboard that takes HubSpot deals as input, calculates pipeline KPIs (win rate, cycle time, stuck days), and outputs charts and tables in the UI with a CSV export. Trigger on button click and a daily 09:00 schedule.</p>

<p align="center"><a href="https://riff.new/home?prompt-template=A%20dashboard%20that%20takes%20HubSpot%20deals%20as%20input%2C%20calculates%20pipeline%20KPIs%20%28win%20rate%2C%20cycle%20time%2C%20stuck%20days%29%2C%20and%20outputs%20charts%20and%20tables%20in%20the%20UI%20with%20a%20CSV%20export.%20Trigger%20on%20button%20click%20and%20a%20daily%2009%3A00%20schedule" class="button primary">Riff this App</a></p>
{% endcolumn %}
{% endcolumns %}

{% columns fullWidth="true" %}
{% column width="50%" %}

<h4 align="center"></h4>

<h4 align="center"></h4>

<h4 align="center"></h4>

<h4 align="center"><a href="../use-cases/marketing">Marketing</a></h4>

<h4 align="center">Marketing Attribution Dashboard</h4>

<p align="center">Build an app that takes GA4, Google Ads, and HubSpot as inputs, joins campaign spend to leads and revenue, and outputs a dashboard (with CPA, ROAS, lead quality). Trigger daily at 08:00 and via a "Refresh" button.</p>

<p align="center"><a href="https://riff.new/home?prompt-template=Build%20an%20app%20that%20takes%20GA4%2C%20Google%20Ads%2C%20and%20HubSpot%20as%20inputs%2C%20joins%20campaign%20spend%20to%20leads%20and%20revenue%2C%20and%20outputs%20a%20dashboard%20%28with%20CPA%2C%20ROAS%2C%20lead%20quality%29.%20Trigger%20daily%20at%2008%3A00%20and%20via%20a%20%22Refresh%22%20button" class="button primary">Riff this App</a></p>

{% endcolumn %}

{% column width="50%" %}

<figure><img src="https://4203676568-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fmj3x7kCuQ8vAs0u0uIPo%2Fuploads%2FKEc9Qgf9gZOWHPFLdgKO%2Fimage.png?alt=media&#x26;token=beb1c522-3d14-48c4-84fa-34a09cbaa61f" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

{% columns fullWidth="true" %}
{% column %}

<div data-with-frame="true"><figure><img src="https://4203676568-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fmj3x7kCuQ8vAs0u0uIPo%2Fuploads%2FBONuCpUXchVqfyflfS3u%2Fimage.png?alt=media&#x26;token=ae244def-e40d-4738-a990-284a28f4ee1f" alt=""><figcaption></figcaption></figure></div>
{% endcolumn %}

{% column %}

<h4 align="center"></h4>

<h4 align="center"></h4>

<h4 align="center"></h4>

<h4 align="center"><a href="../use-cases/customer-experience">Customer Experience</a></h4>

<h4 align="center">Support Insights Queue</h4>

<p align="center">Take Zendesk tickets and product events from Mixpanel as inputs, use AI to classify/tag/detect sentiment, and output a UI queue with filters and a weekly email of top drivers. Trigger on new ticket webhook and weekly Fri 17:00.</p>

<p align="center"><a href="https://riff.new/home?prompt-template=Take%20Zendesk%20tickets%20and%20product%20events%20from%20Mixpanel%20as%20inputs%2C%20use%20AI%20to%20classify%2Ftag%2Fdetect%20sentiment%2C%20and%20output%20a%20UI%20queue%20with%20filters%20and%20a%20weekly%20email%20of%20top%20drivers.%20Trigger%20on%20new%20ticket%20webhook%20and%20weekly%20Fri%2017%3A00" class="button primary">Riff this App</a></p>
{% endcolumn %}
{% endcolumns %}

{% columns fullWidth="true" %}
{% column width="50%" %}

<h4 align="center"></h4>

<h4 align="center"></h4>

<h4 align="center"></h4>

<h4 align="center"><a href="../use-cases/operations">Operations</a></h4>

<h4 align="center">Ticket Bottleneck Tracker</h4>

<p align="center">An app that takes tickets from Jira and Linear, cleans and groups them by team, calculates cycle time and SLA attainment, and outputs a bottleneck dashboard plus a daily Slack summary. Trigger hourly and on button.</p>

<p align="center"><a href="https://riff.new/home?prompt-template=An%20app%20that%20takes%20tickets%20from%20Jira%20or%20Linear%2C%20cleans%20and%20groups%20them%20by%20team%2C%20calculates%20cycle%20time%20and%20SLA%20attainment%2C%20and%20outputs%20a%20bottleneck%20dashboard%20plus%20a%20daily%20Slack%20summary.%20Trigger%20hourly%20and%20on%20button" class="button primary">Riff this App</a></p>

{% endcolumn %}

{% column width="50%" %}

<div data-with-frame="true"><figure><img src="https://4203676568-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fmj3x7kCuQ8vAs0u0uIPo%2Fuploads%2F0iyqYrgwhe3CpehmgCFb%2Fimage.png?alt=media&#x26;token=382a8f1e-1989-4b8b-9ab2-d6dc82dd9a95" alt=""><figcaption></figcaption></figure></div>
{% endcolumn %}
{% endcolumns %}

{% columns fullWidth="true" %}
{% column %}

<div data-with-frame="true"><figure><img src="https://4203676568-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fmj3x7kCuQ8vAs0u0uIPo%2Fuploads%2F7lf7SIlrqip4RfQF4tL7%2Fimage.png?alt=media&#x26;token=83507be8-9457-4b77-afa1-5927afcc4c37" alt=""><figcaption></figcaption></figure></div>
{% endcolumn %}

{% column %}

<h4 align="center"></h4>

<h4 align="center"></h4>

<h4 align="center"><a href="../use-cases/finance">Finance</a></h4>

<h4 align="center">Reconciliation Dashboard</h4>

<p align="center">Use Stripe and QuickBooks as inputs, reconcile payouts, calculate MRR/ARR, burn, and runway, and output board-ready charts and a downloadable CSV. Trigger monthly on the 1st at 07:00 and on demand.</p>

<p align="center"><a href="https://riff.new/home?prompt-template=Use%20Stripe%20and%20QuickBooks%20as%20inputs%2C%20reconcile%20payouts%2C%20calculate%20MRR%2FARR%2C%20burn%2C%20and%20runway%2C%20and%20output%20board-ready%20charts%20and%20a%20downloadable%20CSV.%20Trigger%20monthly%20on%20the%201st%20at%2007%3A00%20and%20on%20demand" class="button primary">Riff this App</a></p>
{% endcolumn %}
{% endcolumns %}

### **What the Riff agent does**

* Turns your goal into a clear plan with small tasks.
* Calls out assumptions and risks during the planning phase.
* Chooses integrations (native first; custom if needed).

### **What you do**

{% stepper %}
{% step %}
Describe what you need in the prompt box

<figure><img src="https://4203676568-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fmj3x7kCuQ8vAs0u0uIPo%2Fuploads%2F0rrCLXO0kJ10DYReh05O%2Fimage.png?alt=media&#x26;token=269ee2c5-6b9b-4525-b99d-ff948cb313ba" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Answer the agent's questions during the planning stage

<figure><img src="https://4203676568-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fmj3x7kCuQ8vAs0u0uIPo%2Fuploads%2FYiGpJpqfTnNw8tGAewN4%2Fimage.png?alt=media&#x26;token=af31ede3-6f15-430e-9413-dd107322b6d0" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Confirm the plan in the "Riff Card" or continue the chat to adjust scope.

<div data-full-width="false" data-with-frame="true"><figure><img src="https://4203676568-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fmj3x7kCuQ8vAs0u0uIPo%2Fuploads%2FtZq8qchr1A6Pt0IaAvLj%2Fimage.png?alt=media&#x26;token=930102b3-6e01-4d63-9702-0406796e4f5e" alt=""><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}
Your workspace is live. The agent creates a task list and runs until it needs input.

{% endstep %}
{% endstepper %}
