Agent skill
conditional-logic
Write Clayscript formulas, conditional runs, and credit-saving logic in Clay.
Filed under Prospecting and list building.
From Frontal-so/outbound-skills · 73 skills · 4 · pushed 2026-07-14
What it does when it runs
Write Clayscript formulas, conditional runs, and credit-saving logic in Clay. Use when the user asks about Clayscript, Clay formulas, conditional runs, saving credits with logic, data manipulation, if/then logic, JavaScript formulas in Clay, or the AI formula generator. Triggers on "Clayscript", "formula", "conditional run", "credit saving", "data manipulation", "if/then", "JavaScript formula", "conditional formula", "Clay formula", "save credits", "only run if". Do NOT use for Claygent prompting, enrichment provider selection, or table structure questions.
Read from the skill and the 0 files bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.
- Keys and connectors you must supply
- None found.
- Hosts it reaches
- frontal.so
- Tool permissions it declares
- No
allowed-toolsin the frontmatter. It only issues instructions, so there is nothing to bound. - Actions present in the files
- None. Instructions only.
Install it
View source on GitHub ↗git clone --depth 1 --filter=blob:none --sparse https://github.com/Frontal-so/outbound-skills.git /tmp/outbound-skills git -C /tmp/outbound-skills sparse-checkout set "master-skills/clay/.claude/skills/conditional-logic" mkdir -p ~/.claude/skills/conditional-logic cp -R "/tmp/outbound-skills/master-skills/clay/.claude/skills/conditional-logic/." ~/.claude/skills/conditional-logic/
Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗
The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.
The skill
Source on GitHub ↗Reproduced in full from Frontal-so/outbound-skills/blob/27cd847be5ce7e9b749b1d672cbfb29935d911db/master-skills/clay/.claude/skills/conditional-logic/SKILL.md, which is licensed MIT (repository). 575 words, 9 headings.
Conditional Logic & Clayscript
You help users write Clayscript formulas, set up conditional runs, and build credit-saving logic in Clay.
References
- Read
{SKILL_BASE}/resources/formulas/clayscript-guide.mdfor syntax, libraries, and AI formula generator. - Read
{SKILL_BASE}/resources/formulas/copy-paste-formulas.mdfor ready-to-use formulas (name cleaning, domain extraction, email waterfall, seniority check, employee buckets, table layout). - Read
{SKILL_BASE}/resources/expert-tips-eric-noski.mdfor Rule 1 (conditionals on all paid integrations) and Rule 5 (formulas over AI).
Core Rule: Formulas Cost 0 Credits
Formulas are FREE. Always prefer formulas over AI columns for:
- Cleaning/formatting data
- Combining fields (first + last name)
- If/then logic and scoring
- Abbreviations (New Jersey --> NJ)
- Extracting domain from email
- Any standard JavaScript operation
Syntax
- Describe mode: Use
/field_nameto reference columns - Raw mode: Use
{{FieldName}} - Libraries available: Lodash (
_), Moment.js (moment), FormulaJS (VLOOKUP, IF, SUM) - Null safety: Always add
|| ""to avoid errors on empty cells
Essential Conditional Run Formulas
// Only run if field is empty (most common)
/email is empty
// Only run if previous enrichment completed but returned nothing
Clay.getCellStatus(#{{field_id}}) == "completed" AND {{previous_column}} == ""
// Only run on high-value leads
/lead_score > 70 AND /industry equals "SaaS"
// Only run if email is valid
/email_validation equals "valid" OR /email_validation equals "catchall valid"
// Skip already-enriched rows
/revenue is empty AND /domain is not empty
// Combined: CRM push only if ready
/email is not empty AND /email_validation equals "valid" AND /lead_score > 50
Common Data Manipulation Formulas
// Extract domain from email
{{email}}.split("@")[1] || ""
// Combine first + last name
({{first_name}} || "") + " " + ({{last_name}} || "")
// Capitalize first letter
({{name}} || "").charAt(0).toUpperCase() + ({{name}} || "").slice(1).toLowerCase()
// Bucket company size
{{employee_count}} > 1000 ? "Enterprise" : {{employee_count}} > 200 ? "Mid-Market" : {{employee_count}} > 50 ? "SMB" : "Startup"
// Clean LinkedIn URL
({{linkedin_url}} || "").replace(/\/$/, "").split("?")[0]
AI Formula Generator
- Add column --> select Formula type
- Type instructions in plain English: "Extract the domain from the email column"
- Use
/to reference columns - Click "Generate Formula"
- Verify sample output on 3-5 rows
- Save
Tip: If the AI generator fails, screenshot the formula need and use ChatGPT -- it sometimes writes better Clayscript.
Credit-Saving Checklist
- Every paid enrichment MUST have a conditional run (non-negotiable)
- Check if data already exists before calling a provider
- Use formulas to derive data instead of enriching (e.g., company size bucket from headcount)
- Chain conditionals: only run Provider 2 if Provider 1 returned empty
- Disable auto-update on expensive columns during testing
Examples
Example 1: "I want to only push leads to HubSpot if they have a valid email and score above 80"
--> Conditional run on CRM push column: /email_validation equals "valid" AND /lead_score > 80. This prevents bad data from entering your CRM.
Example 2: "How do I extract the company name from an email domain?"
--> Formula column: ({{email}} || "").split("@")[1].split(".")[0]. Capitalize: .charAt(0).toUpperCase() + .slice(1). Cost: 0 credits.
Example 3: "My Clay table is burning credits because enrichments run on every row" --> Add conditional runs to every paid column. Minimum: "field is empty". Better: "field is empty AND /domain is not empty". Check auto-update settings (disable during testing). Review credit usage report.
Part of Frontal — free, open GTM skills for your AI agent. Browse the library →
Other skills for the same job
Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.
- channel-fallback-logic by louisblythe · 136
- lead-qualification-logic by louisblythe · 136
- meeting-confirmation-reminder-logic by louisblythe · 136
- pricing-discussion-logic by louisblythe · 136
Need help setting it up?
This page tells you what conditional-logic does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.
Book a call →The directory stays free. There is nothing gated behind this.