Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
98f8e85
improvement(tables): extract TablesDetail wrapper, ship trigger follo…
TheodoreSpeaks May 7, 2026
d081ab2
fix(logs): relax fileSchema so execution logs with files render again…
waleedlatif1 May 7, 2026
38cbefd
fix(revenuecat): align tools and block with REST v1 API spec (#4488)
waleedlatif1 May 7, 2026
f708462
fix(files): skip zip and return plain .md when no embedded images (#4…
waleedlatif1 May 7, 2026
401ebcc
fix(auth): Redirect to login if user session doesn't exist (#4497)
TheodoreSpeaks May 7, 2026
b045eae
revert(ci): drop turbopackFileSystemCacheForBuild and restore actions…
waleedlatif1 May 7, 2026
81845ae
fix(table): trigger cascade race fixes, polling, workflow column flag…
TheodoreSpeaks May 7, 2026
00b5b74
fix(redis): drop cached client and restart PING loop after forced rec…
TheodoreSpeaks May 7, 2026
1e5cc39
improvement(deployment): solve multiple client side races, and deploy…
icecrasher321 May 8, 2026
408669d
fix(md-render): inline code inherits heading size in mothership/templ…
waleedlatif1 May 8, 2026
6a00685
improvement(apollo): align tools and block with Apollo API docs (#4487)
waleedlatif1 May 8, 2026
a2aa648
improvement(sandbox): upgrade pptx/docx/pdf bootstrap with image help…
waleedlatif1 May 8, 2026
235a62f
fix(hunter): align tools, block, and outputs with Hunter.io v2 API sp…
waleedlatif1 May 8, 2026
6a927c9
fix(tables): optimistic updates for column delete/update (#4512)
waleedlatif1 May 8, 2026
11563cf
improvement(uploads): migrate remaining FormData uploads to presigned…
waleedlatif1 May 8, 2026
6cb7796
feat(search-replace): search & replace, cut, deploy modal ui flicker …
icecrasher321 May 8, 2026
eb871fc
feat(table): live cell updates via SSE + per-table event buffer (#4508)
TheodoreSpeaks May 8, 2026
57f00e2
fix(table): fix table boolean, add dynamic row number col size, searc…
waleedlatif1 May 8, 2026
9e9ddaa
feat(peopledatalabs): add People Data Labs integration (#4513)
waleedlatif1 May 8, 2026
29affda
improvement(search-replace): dedupe double indexed segments (#4517)
icecrasher321 May 8, 2026
3c33c20
improvement(peopledatalabs): add titlecase, placeholders, and 404 han…
waleedlatif1 May 8, 2026
630db5c
improvement(mothership-chat): memoize message rows for long-transcrip…
waleedlatif1 May 8, 2026
50d4afd
fix(logs): include subfolders when filtering logs by folder (#4525)
waleedlatif1 May 8, 2026
b74f8da
improvement(sandbox): expand document generation — style extraction, …
waleedlatif1 May 9, 2026
d0b0ede
fix(mothership): misc ui bugs (#4528)
icecrasher321 May 9, 2026
cb3a876
feat(knowledge): include sourceUrl in KB search results (#4533)
waleedlatif1 May 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 5 additions & 3 deletions .github/workflows/test-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,11 +44,13 @@ jobs:
key: ${{ github.repository }}-turbo-cache
path: ./.turbo

- name: Mount Next.js build cache (Sticky Disk)
uses: useblacksmith/stickydisk@v1
- name: Restore Next.js build cache
uses: actions/cache@v5
with:
key: ${{ github.repository }}-nextjs-cache
path: ./apps/sim/.next/cache
key: ${{ runner.os }}-nextjs-${{ hashFiles('bun.lock') }}
restore-keys: |
${{ runner.os }}-nextjs-

- name: Install dependencies
run: bun install --frozen-lockfile
Expand Down
18 changes: 18 additions & 0 deletions apps/docs/components/icons.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -895,6 +895,24 @@ export function YouTubeIcon(props: React.SVGProps<SVGSVGElement>) {
)
}

export function PeopleDataLabsIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg
width='1em'
height='1em'
viewBox='0 0 99.92 90.06'
xmlns='http://www.w3.org/2000/svg'
{...props}
>
<path
fill='currentColor'
fillRule='evenodd'
d='M99.91,57.77l-3.2-24.4c0-.7-.4-1.3-.8-1.8l-20-21.3c-.5-.5-1.1-.8-1.8-1L29.21.07c-1.1-.2-2.2,0-2.9.8L1.01,24.07c-.9.8-1.2,2-.9,3.1l6,23.4c.3,1.2,1.3,2.1,2.5,2.4l9.9,2,11.3,6.6h0l11.9,6.5,14.9,20.6c.8,1.1,2.2,1.6,3.5,1.3l8.1-1.9c1.4-.3,2.5-1.6,2.5-3l.3-6.8,27.4-17.4c1.1-.7,1.6-1.9,1.5-3.1ZM90.31,35.17l2.1,16.3-40.2-26.8,20.4-8.4,17.7,18.8v.1ZM31.11,7.17l31.2,6.3-18.4,7.5h0l-16.8,7.3s4-21.1,4-21.1ZM12.01,47.07l-5-19.6,16.5-15.1-3.9,20.7c-.3,1.4.4,2.7,1.6,3.4l30.1,16.6-31-4.4-8.3-1.7v.1ZM60.81,83.17l-14-19.4c-.3-.4-.7-.7-1.1-1l-9.8-5.4,29,4.1-.4,14.7-.2,6-3.5.8v.2ZM83.01,62.97l-11.7,7.4.3-11.5c0-1.2-.6-2.3-1.7-2.9l-39.8-21.9,14.8-6.4,45.7,30.4-7.7,4.9h.1Z'
/>
</svg>
)
}

export function PerplexityIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg width='1em' height='1em' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' {...props}>
Expand Down
2 changes: 2 additions & 0 deletions apps/docs/components/ui/icon-mapping.ts
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,7 @@ import {
PackageSearchIcon,
PagerDutyIcon,
ParallelIcon,
PeopleDataLabsIcon,
PerplexityIcon,
PineconeIcon,
PipedriveIcon,
Expand Down Expand Up @@ -351,6 +352,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
outlook: OutlookIcon,
pagerduty: PagerDutyIcon,
parallel_ai: ParallelIcon,
peopledatalabs: PeopleDataLabsIcon,
perplexity: PerplexityIcon,
pinecone: PineconeIcon,
pipedrive: PipedriveIcon,
Expand Down
4 changes: 3 additions & 1 deletion apps/docs/content/docs/en/keyboard-shortcuts/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,12 @@ Speed up your workflow building with these keyboard shortcuts and mouse controls
| `Mod` + `Z` | Undo |
| `Mod` + `Shift` + `Z` | Redo |
| `Mod` + `C` | Copy selected blocks |
| `Mod` + `X` | Cut selected blocks |
| `Mod` + `V` | Paste blocks |
| `Delete` or `Backspace` | Delete selected blocks or edges |
| `Shift` + `L` | Auto-layout canvas |
| `Mod` + `Shift` + `F` | Fit to view |
| `Mod` + `F` | Open workflow search and replace |
| `Mod` + `Shift` + `Enter` | Accept Copilot changes |

## Panel Navigation
Expand All @@ -43,7 +45,7 @@ These shortcuts switch between panel tabs on the right side of the canvas.

| Shortcut | Action |
|----------|--------|
| `Mod` + `F` | Focus Toolbar search |
| `Mod` + `Alt` + `F` | Focus Toolbar search |

## Global Navigation

Expand Down
213 changes: 141 additions & 72 deletions apps/docs/content/docs/en/tools/apollo.mdx

Large diffs are not rendered by default.

68 changes: 40 additions & 28 deletions apps/docs/content/docs/en/tools/hunter.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Hunter io
title: Hunter.io
description: Find and verify professional email addresses
---

Expand Down Expand Up @@ -53,11 +53,16 @@ Returns companies matching a set of criteria using Hunter.io AI-powered search.
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `results` | array | List of companies matching the search criteria |
| ↳ `name` | string | Company name |
| ↳ `domain` | string | Company domain |
| ↳ `name` | string | Company/organization name |
| ↳ `headcount` | number | Company size/headcount |
| ↳ `technologies` | array | Technologies used by the company |
| ↳ `email_count` | number | Total number of email addresses found |
| ↳ `logo` | string | URL of the company logo |
| ↳ `linkedin_url` | string | LinkedIn profile URL of the company |
| ↳ `company_type` | string | Company type \(e.g., privately held, public company\) |
| ↳ `industry` | string | Industry of the company |
| ↳ `size` | string | Headcount range of the company |
| ↳ `location` | string | Headquarters location |
| ↳ `founded_year` | number | Year the company was founded |
| ↳ `crunchbase_url` | string | Crunchbase URL of the company |

### `hunter_domain_search`

Expand Down Expand Up @@ -86,8 +91,9 @@ Returns all the email addresses found using one given domain name, with sources.
| ↳ `first_name` | string | Person's first name |
| ↳ `last_name` | string | Person's last name |
| ↳ `position` | string | Job title/position |
| ↳ `position_raw` | string | Raw job title as found |
| ↳ `seniority` | string | Seniority level \(junior, senior, executive\) |
| ↳ `department` | string | Department \(executive, it, finance, management, sales, legal, support, hr, marketing, communication\) |
| ↳ `department` | string | Department \(executive, it, finance, management, sales, legal, support, hr, marketing, communication, education, design, health, operations\) |
| ↳ `linkedin` | string | LinkedIn profile URL |
| ↳ `twitter` | string | Twitter handle |
| ↳ `phone_number` | string | Phone number |
Expand All @@ -106,19 +112,7 @@ Returns all the email addresses found using one given domain name, with sources.
| `accept_all` | boolean | Whether the server accepts all email addresses \(may cause false positives\) |
| `pattern` | string | The email pattern used by the organization \(e.g., \{first\}, \{first\}.\{last\}\) |
| `organization` | string | The organization/company name |
| `description` | string | Description of the organization |
| `industry` | string | Industry classification of the organization |
| `twitter` | string | Twitter handle of the organization |
| `facebook` | string | Facebook page URL of the organization |
| `linkedin` | string | LinkedIn company page URL |
| `instagram` | string | Instagram profile of the organization |
| `youtube` | string | YouTube channel of the organization |
| `technologies` | array | Technologies used by the organization |
| `country` | string | Country where the organization is headquartered |
| `state` | string | State/province where the organization is located |
| `city` | string | City where the organization is located |
| `postal_code` | string | Postal code of the organization |
| `street` | string | Street address of the organization |
| `linked_domains` | array | Other domains linked to the organization |

### `hunter_email_finder`

Expand Down Expand Up @@ -147,8 +141,17 @@ Finds the most likely email address for a person given their name and company do
| `verification` | object | Email verification information |
| ↳ `date` | string | Date when the email was verified \(YYYY-MM-DD\) |
| ↳ `status` | string | Verification status \(valid, invalid, accept_all, webmail, disposable, unknown\) |
| `first_name` | string | Person's first name |
| `last_name` | string | Person's last name |
| `email` | string | The found email address |
| `score` | number | Confidence score \(0-100\) for the found email address |
| `domain` | string | Domain that was searched |
| `accept_all` | boolean | Whether the server accepts all email addresses \(may cause false positives\) |
| `position` | string | Job title/position |
| `twitter` | string | Twitter handle |
| `linkedin_url` | string | LinkedIn profile URL |
| `phone_number` | string | Phone number |
| `company` | string | Company name |

### `hunter_email_verifier`

Expand Down Expand Up @@ -200,15 +203,24 @@ Enriches company data using domain name.

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `company` | object | Company information |
| ↳ `name` | string | Company name |
| ↳ `domain` | string | Company domain |
| ↳ `industry` | string | Industry classification |
| ↳ `size` | string | Company size/headcount range |
| ↳ `country` | string | Country where the company is located |
| ↳ `linkedin` | string | LinkedIn company page URL |
| ↳ `twitter` | string | Twitter handle |
| `person` | object | Person information \(undefined for companies_find tool\) |
| `name` | string | Company name |
| `domain` | string | Company domain |
| `description` | string | Company description |
| `industry` | string | Industry classification |
| `sector` | string | Business sector |
| `size` | string | Employee headcount range \(e.g., "11-50"\) |
| `founded_year` | number | Year founded |
| `location` | string | Headquarters location \(formatted\) |
| `country` | string | Country \(full name\) |
| `country_code` | string | ISO 3166-1 alpha-2 country code |
| `state` | string | State/province |
| `city` | string | City |
| `linkedin` | string | LinkedIn handle \(e.g., company/hunterio\) |
| `twitter` | string | Twitter handle |
| `facebook` | string | Facebook handle |
| `logo` | string | Company logo URL |
| `phone` | string | Company phone number |
| `tech` | array | Technologies used by the company |

### `hunter_email_count`

Expand Down
1 change: 1 addition & 0 deletions apps/docs/content/docs/en/tools/knowledge.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ Search for similar content in a knowledge base using vector similarity
| `results` | array | Array of search results from the knowledge base |
| ↳ `documentId` | string | Document ID |
| ↳ `documentName` | string | Document name |
| ↳ `sourceUrl` | string | URL to the original source document \(e.g., Confluence page, Google Doc, Notion page\). Null for documents without an external source. |
| ↳ `content` | string | Content of the result |
| ↳ `chunkIndex` | number | Index of the chunk within the document |
| ↳ `similarity` | number | Similarity score of the result |
Expand Down
1 change: 1 addition & 0 deletions apps/docs/content/docs/en/tools/meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,7 @@
"outlook",
"pagerduty",
"parallel_ai",
"peopledatalabs",
"perplexity",
"pinecone",
"pipedrive",
Expand Down
70 changes: 70 additions & 0 deletions apps/docs/content/docs/en/tools/peopledatalabs.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
---
title: People Data Labs
description: Enrich and search people and companies
---

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

<BlockInfoCard
type="peopledatalabs"
color="#4831C3"
/>

{/* MANUAL-CONTENT-START:intro */}
## Description

[People Data Labs](https://www.peopledatalabs.com/) is a person and company data provider with a global dataset of 3B+ person profiles and 25M+ company records. The Sim block exposes the core REST endpoints so agents can enrich a single contact, look up a company, or run dataset-wide search queries.

Use this block to:
- **Person Enrich** — resolve a single person by email, phone, LinkedIn URL, or name + company/location, and pull back their work history, contact info, and skills.
- **Person Search** — run SQL or Elasticsearch DSL queries against the person dataset to build prospect lists or audience segments.
- **Company Enrich** — resolve a single company by name, website, ticker, LinkedIn URL, or PDL ID, and pull back firmographics.
- **Company Search** — query the company dataset with SQL or Elasticsearch DSL.
- **Autocomplete** — get suggested values for fields like `title`, `skill`, `industry`, or `location` to build well-formed search queries.

Authentication uses an API key passed as the `X-Api-Key` header. Get a key from the [PDL dashboard](https://dashboard.peopledatalabs.com/).
{/* MANUAL-CONTENT-END */}


## Usage Instructions

Enrich a single person or company with People Data Labs, or search the global person and company datasets with SQL or Elasticsearch DSL. Useful for sales enrichment, contact lookup, and CRM hygiene.



## Tools

### `pdl_person_enrich`


### `pdl_person_identify`


### `pdl_person_search`


### `pdl_bulk_person_enrich`


### `pdl_company_enrich`


### `pdl_company_search`


### `pdl_bulk_company_enrich`


### `pdl_clean_company`


### `pdl_clean_location`


### `pdl_clean_school`


### `pdl_autocomplete`



Loading
Loading