Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions apps/docs/components/icons.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3600,6 +3600,25 @@ export const ResendIcon = (props: SVGProps<SVGSVGElement>) => (
</svg>
)

export const GoogleAnalyticsIcon = (props: SVGProps<SVGSVGElement>) => (
<svg {...props} xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'>
<g transform='translate(-174.95 -339.18)scale(3.54856)'>
<path
d='M149.3 112.8V221c0 12.1 8.4 18.9 17.2 18.9 8.2 0 17.2-5.7 17.2-18.9V113.6c0-11.1-8.2-18-17.2-18s-17.2 7.6-17.2 17.2'
fill='#f8ab00'
/>
<path
d='M104.2 167.7V221c0 12.1 8.4 18.9 17.2 18.9 8.2 0 17.2-5.7 17.2-18.9v-52.5c0-11.1-8.2-18-17.2-18s-17.2 7.7-17.2 17.2'
fill='#e37300'
/>
<path
d='M93.6 222.7c0 9.5-7.7 17.2-17.2 17.2s-17.2-7.7-17.2-17.2 7.7-17.2 17.2-17.2 17.2 7.6 17.2 17.2'
fill='#e37300'
/>
</g>
</svg>
)

export const GoogleAdsIcon = (props: SVGProps<SVGSVGElement>) => (
<svg {...props} xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'>
<g transform='matrix(.257748 0 0 .257745 -.361416 2.515516)'>
Expand Down
14 changes: 8 additions & 6 deletions apps/docs/components/ui/icon-mapping.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,12 @@ import {
FirecrawlIcon,
FirefliesIcon,
GammaIcon,
GithubIcon,
GitLabIcon,
GithubIcon,
GmailIcon,
GongIcon,
GoogleAdsIcon,
GoogleAnalyticsIcon,
GoogleBigQueryIcon,
GoogleBooksIcon,
GoogleCalendarIcon,
Expand Down Expand Up @@ -91,9 +92,9 @@ import {
LinkupIcon,
LoopsIcon,
LumaIcon,
MailServerIcon,
MailchimpIcon,
MailgunIcon,
MailServerIcon,
Mem0Icon,
MicrosoftDataverseIcon,
MicrosoftExcelIcon,
Expand Down Expand Up @@ -128,6 +129,8 @@ import {
ResendIcon,
RevenueCatIcon,
S3Icon,
SQSIcon,
STTIcon,
SalesforceIcon,
SearchIcon,
SendgridIcon,
Expand All @@ -139,19 +142,17 @@ import {
SimilarwebIcon,
SlackIcon,
SmtpIcon,
SQSIcon,
SshIcon,
STTIcon,
StagehandIcon,
StripeIcon,
SupabaseIcon,
TTSIcon,
TavilyIcon,
TelegramIcon,
TextractIcon,
TinybirdIcon,
TranslateIcon,
TrelloIcon,
TTSIcon,
TwilioIcon,
TypeformIcon,
UpstashIcon,
Expand All @@ -162,11 +163,11 @@ import {
WhatsAppIcon,
WikipediaIcon,
WordpressIcon,
xIcon,
YouTubeIcon,
ZendeskIcon,
ZepIcon,
ZoomIcon,
xIcon,
} from '@/components/icons'

type IconComponent = ComponentType<SVGProps<SVGSVGElement>>
Expand Down Expand Up @@ -218,6 +219,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
gmail_v2: GmailIcon,
gong: GongIcon,
google_ads: GoogleAdsIcon,
google_analytics: GoogleAnalyticsIcon,
google_bigquery: GoogleBigQueryIcon,
google_books: GoogleBooksIcon,
google_calendar_v2: GoogleCalendarIcon,
Expand Down
17 changes: 15 additions & 2 deletions apps/docs/content/docs/en/tools/firecrawl.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,9 @@ Extract structured content from web pages with comprehensive metadata support. C
| `url` | string | Yes | The URL to scrape content from \(e.g., "https://example.com/page"\) |
| `scrapeOptions` | json | No | Options for content scraping |
| `apiKey` | string | Yes | Firecrawl API key |
| `pricing` | custom | No | No description |
| `metadata` | string | No | No description |
| `rateLimit` | string | No | No description |
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unrelated tool docs modified with "No description" entries

Medium Severity

This PR adds pricing, metadata, and rateLimit parameters with "No description" to the docs of many unrelated tools (Firecrawl, Google Books, Google Maps, Google PageSpeed, Google Translate, Linkup, Perplexity, Serper, Jina). These appear to be auto-generated side effects from running a docs generation script, not intentional changes for a Google Analytics feature PR. The "No description" entries degrade documentation quality for those tools.

Additional Locations (2)
Fix in Cursor Fix in Web


#### Output

Expand Down Expand Up @@ -86,6 +89,9 @@ Search for information on the web using Firecrawl
| --------- | ---- | -------- | ----------- |
| `query` | string | Yes | The search query to use |
| `apiKey` | string | Yes | Firecrawl API key |
| `pricing` | custom | No | No description |
| `metadata` | string | No | No description |
| `rateLimit` | string | No | No description |

#### Output

Expand Down Expand Up @@ -123,6 +129,9 @@ Crawl entire websites and extract structured content from all accessible pages
| `includePaths` | json | No | URL paths to include in crawling \(e.g., \["/docs/*", "/api/*"\]\). Only these paths will be crawled |
| `onlyMainContent` | boolean | No | Extract only main content from pages |
| `apiKey` | string | Yes | Firecrawl API Key |
| `pricing` | custom | No | No description |
| `metadata` | string | No | No description |
| `rateLimit` | string | No | No description |

#### Output

Expand All @@ -142,7 +151,6 @@ Crawl entire websites and extract structured content from all accessible pages
| ↳ `statusCode` | number | HTTP status code |
| ↳ `ogLocaleAlternate` | array | Alternate locale versions |
| `total` | number | Total number of pages found during crawl |
| `creditsUsed` | number | Number of credits consumed by the crawl operation |

### `firecrawl_map`

Expand All @@ -161,6 +169,9 @@ Get a complete list of URLs from any website quickly and reliably. Useful for di
| `timeout` | number | No | Request timeout in milliseconds |
| `location` | json | No | Geographic context for proxying \(country, languages\) |
| `apiKey` | string | Yes | Firecrawl API key |
| `pricing` | custom | No | No description |
| `metadata` | string | No | No description |
| `rateLimit` | string | No | No description |

#### Output

Expand All @@ -187,6 +198,9 @@ Extract structured data from entire webpages using natural language prompts and
| `ignoreInvalidURLs` | boolean | No | Skip invalid URLs in the array \(default: true\) |
| `scrapeOptions` | json | No | Advanced scraping configuration options |
| `apiKey` | string | Yes | Firecrawl API key |
| `pricing` | custom | No | No description |
| `metadata` | string | No | No description |
| `rateLimit` | string | No | No description |

#### Output

Expand Down Expand Up @@ -217,7 +231,6 @@ Autonomous web data extraction agent. Searches and gathers information based on
| `success` | boolean | Whether the agent operation was successful |
| `status` | string | Current status of the agent job \(processing, completed, failed\) |
| `data` | object | Extracted data from the agent |
| `creditsUsed` | number | Number of credits consumed by this agent task |
| `expiresAt` | string | Timestamp when the results expire \(24 hours\) |
| `sources` | object | Array of source URLs used by the agent |

Expand Down
129 changes: 129 additions & 0 deletions apps/docs/content/docs/en/tools/google_analytics.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
---
title: Google Analytics
description: Query GA4 analytics data and reports
---

import { BlockInfoCard } from "@/components/ui/block-info-card"

<BlockInfoCard
type="google_analytics"
color="#E0E0E0"
/>

{/* MANUAL-CONTENT-START:intro */}
[Google Analytics](https://analytics.google.com) is Google's web and app analytics platform. Through Sim, your agents can query GA4 property data to automate reporting, monitoring, and analysis workflows.

**The following Google Analytics Data API operations are included in this integration:**

- **Run Report:** Generate customized reports with dimensions, metrics, date ranges, filters, and sorting. Supports pagination for large datasets.
- **Run Realtime Report:** Get live data from the last 30 minutes, including active users, page views, and conversions in real time.
- **Get Metadata:** Discover all available dimensions and metrics for a GA4 property, including their descriptions and categories.

With these operations, your Sim agents can automate daily/weekly analytics reporting, monitor real-time traffic and conversions, build dashboards from GA4 data, detect anomalies in key metrics, and enrich workflows with analytics context—all without manual work in the Google Analytics UI.
{/* MANUAL-CONTENT-END */}


## Usage Instructions

Integrate Google Analytics GA4 into your workflow. Run custom reports, get realtime data, and discover available dimensions and metrics.



## Tools

### `google_analytics_run_report`

Run a customized report on Google Analytics GA4 property data

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `propertyId` | string | Yes | The GA4 property ID \(e.g., 123456789\) |
| `dimensions` | string | Yes | Comma-separated dimension names \(e.g., date,country,deviceCategory\). See GA4 dimensions reference. |
| `metrics` | string | Yes | Comma-separated metric names \(e.g., activeUsers,sessions,screenPageViews\). See GA4 metrics reference. |
| `startDate` | string | Yes | Start date in YYYY-MM-DD format, or relative dates like "7daysAgo", "30daysAgo", "yesterday" |
| `endDate` | string | Yes | End date in YYYY-MM-DD format, or "today", "yesterday" |
| `dimensionFilter` | string | No | Dimension filter as JSON \(e.g., \{"filter":\{"fieldName":"country","stringFilter":\{"value":"US"\}\}\}\) |
| `metricFilter` | string | No | Metric filter as JSON \(e.g., \{"filter":\{"fieldName":"activeUsers","numericFilter":\{"operation":"GREATER_THAN","value":\{"int64Value":"100"\}\}\}\}\) |
| `orderBys` | string | No | Order by specification as JSON array \(e.g., \[\{"metric":\{"metricName":"activeUsers"\},"desc":true\}\]\) |
| `limit` | number | No | Maximum number of rows to return \(default: 10000, max: 250000\) |
| `offset` | number | No | Starting row offset for pagination \(default: 0\) |
| `keepEmptyRows` | boolean | No | Whether to include rows with all zero metric values |
| `currencyCode` | string | No | Currency code for revenue metrics \(e.g., USD, EUR\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `dimensionHeaders` | array | Dimension column headers |
| ↳ `name` | string | Dimension name |
| `metricHeaders` | array | Metric column headers |
| ↳ `name` | string | Metric name |
| ↳ `type` | string | Metric data type |
| `rows` | array | Report data rows |
| ↳ `dimensionValues` | json | Array of dimension values for this row |
| ↳ `metricValues` | json | Array of metric values for this row |
| `rowCount` | number | Total number of rows in the result |
| `metadata` | json | Report metadata including currency code and time zone |
| ↳ `currencyCode` | string | Currency code used in the report |
| ↳ `timeZone` | string | Time zone used in the report |

### `google_analytics_run_realtime_report`

Run a realtime report on Google Analytics GA4 property data from the last 30 minutes

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `propertyId` | string | Yes | The GA4 property ID \(e.g., 123456789\) |
| `dimensions` | string | No | Comma-separated dimension names for realtime data \(e.g., unifiedScreenName,country,deviceCategory\) |
| `metrics` | string | Yes | Comma-separated metric names \(e.g., activeUsers,screenPageViews,conversions\) |
| `dimensionFilter` | string | No | Dimension filter as JSON |
| `metricFilter` | string | No | Metric filter as JSON |
| `limit` | number | No | Maximum number of rows to return \(default: 10000, max: 250000\) |
| `startMinutesAgo` | number | No | Start of the time window in minutes ago \(default: 29, max: 29 for standard, 59 for 360\) |
| `endMinutesAgo` | number | No | End of the time window in minutes ago \(default: 0, meaning now\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `dimensionHeaders` | array | Dimension column headers |
| ↳ `name` | string | Dimension name |
| `metricHeaders` | array | Metric column headers |
| ↳ `name` | string | Metric name |
| ↳ `type` | string | Metric data type |
| `rows` | array | Realtime report data rows |
| ↳ `dimensionValues` | json | Array of dimension values for this row |
| ↳ `metricValues` | json | Array of metric values for this row |
| `rowCount` | number | Total number of rows in the result |

### `google_analytics_get_metadata`

Get available dimensions, metrics, and their descriptions for a Google Analytics GA4 property

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `propertyId` | string | Yes | The GA4 property ID \(e.g., 123456789\). Use 0 to get universal metadata available across all properties. |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `dimensions` | array | Available dimensions for the property |
| ↳ `apiName` | string | API name to use in report requests |
| ↳ `uiName` | string | Human-readable display name |
| ↳ `description` | string | Description of the dimension |
| ↳ `category` | string | Category grouping |
| `metrics` | array | Available metrics for the property |
| ↳ `apiName` | string | API name to use in report requests |
| ↳ `uiName` | string | Human-readable display name |
| ↳ `description` | string | Description of the metric |
| ↳ `category` | string | Category grouping |
| ↳ `type` | string | Data type of the metric |


4 changes: 4 additions & 0 deletions apps/docs/content/docs/en/tools/google_books.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ Search for books using the Google Books API
| `startIndex` | number | No | Index of the first result to return \(for pagination\) |
| `maxResults` | number | No | Maximum number of results to return \(1-40\) |
| `langRestrict` | string | No | Restrict results to a specific language \(ISO 639-1 code\) |
| `pricing` | per_request | No | No description |
| `rateLimit` | string | No | No description |

#### Output

Expand Down Expand Up @@ -82,6 +84,8 @@ Get detailed information about a specific book volume
| `apiKey` | string | Yes | Google Books API key |
| `volumeId` | string | Yes | The ID of the volume to retrieve |
| `projection` | string | No | Projection level \(full, lite\) |
| `pricing` | per_request | No | No description |
| `rateLimit` | string | No | No description |

#### Output

Expand Down
Loading
Loading