Analyze A/B test results for statistical significance with ship, extend, or kill recommendations
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Read and write data to the agency CRM (Google Sheets via webhook or API)
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
실행 점수 미검증
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
Reads and writes lead, outreach, and pipeline data to the agency's CRM. Default backend is Google Sheets via webhook. The skill checks tools.crm in agency.config.json to determine the execution path and credentials.
agency.config.json at repo root with crm and tools.crm sectionscrm.webhook_urlGOOGLE_SERVICE_ACCOUNT_KEY env var set (referenced in tools.crm.api_key_env)agency.config.json from the project root.crm.type -- CRM backend type (e.g., google_sheets)crm.sheet_id -- the Google Sheet IDcrm.webhook_url -- the Google Apps Script webhook endpointcrm.tabs -- map of logical tab names to actual sheet tab namestools.crm.access -- execution method: webhook | api | browsertools.crm.api_key_env -- env var name for API credentials (if applicable)operation -- one of: READ, APPEND, UPDATE, CREATE_TABtab -- logical tab name (looked up in crm.tabs) or literal tab namedata -- the data to write (for APPEND/UPDATE operations)query -- search/filter criteria (for READ operations)Map the logical tab name to the actual sheet tab name using crm.tabs:
tab matches a key in crm.tabs, use the mapped value.tab does not match any key, use it as-is (literal tab name).Example: tab: "hawk_leads" resolves to "Hawk Leads" per the config.
Add one or more rows to a tab. Each row is an object with column headers as keys.
Via Webhook (preferred):
curl -s -X POST "{{crm.webhook_url}}" \
-H "Content-Type: application/json" \
-d '{
"sheet": "{{resolved_tab_name}}",
"headers": ["Col1", "Col2", "Col3"],
"row": ["value1", "value2", "value3"]
}'
Rules:
headers must match the existing column headers in the tab exactly (case-sensitive).timestamp column with ISO datetime for every write.Via API (if webhook is unavailable):
Use the Google Sheets API v4 with the service account credentials from the env var specified in tools.crm.api_key_env.
POST https://sheets.googleapis.com/v4/spreadsheets/{{crm.sheet_id}}/values/{{resolved_tab_name}}!A:Z:append?valueInputOption=USER_ENTERED
Authorization: Bearer {{access_token}}
Content-Type: application/json
{
"values": [["value1", "value2", "value3"]]
}
Read rows from a tab, optionally filtered.
Via Webhook:
curl -s -X POST "{{crm.webhook_url}}" \
-H "Content-Type: application/json" \
-d '{
"action": "read",
"sheet": "{{resolved_tab_name}}",
"filters": {
"column": "Stage",
"value": "HOT"
}
}'
Via API:
GET https://sheets.googleapis.com/v4/spreadsheets/{{crm.sheet_id}}/values/{{resolved_tab_name}}!A:Z
Authorization: Bearer {{access_token}}
Then filter the returned data in-memory based on the query criteria.
Query options:
stage -- filter by pipeline stage (e.g., HOT, WARM, CONTACTED)date_range -- filter by date column (e.g., last 7 days)search -- substring match across all columnslimit -- max rows to returnUpdate specific fields on existing rows. Identify the row by a unique key (usually URL, email, or company name).
Via Webhook:
curl -s -X POST "{{crm.webhook_url}}" \
-H "Content-Type: application/json" \
-d '{
"action": "update",
"sheet": "{{resolved_tab_name}}",
"match_column": "Email",
"match_value": "founder@example.com",
"updates": {
"Stage": "CONTACTED",
"Last Touch": "2024-01-15",
"Notes": "Sent cold email"
}
}'
Via API:
PUT to update the specific cells.Create a new tab with specified headers.
Via Webhook:
curl -s -X POST "{{crm.webhook_url}}" \
-H "Content-Type: application/json" \
-d '{
"action": "create_tab",
"sheet": "{{new_tab_name}}",
"headers": ["Date", "Company", "Contact", "Email", "Stage", "Source", "Notes"]
}'
Via API:
Use the Sheets API batchUpdate to add a new sheet, then write the header row.
Before executing any write operation:
After each operation, report:
CRM Write Complete:
- Tab: {{tab_name}}
- Operation: APPEND
- Rows written: {{count}}
- Timestamp: {{iso_datetime}}
For READ operations, return the data in a clean table format.
Trigger phrases:
User: Log these 5 scored leads to Hawk Leads
Assistant: [reads config, resolves tab name, sends 5 webhook POSTs with rate limiting, confirms 5 rows written]
User: Show me all leads contacted this week
Assistant: [reads Outreach CRM tab, filters by date range, returns table]
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Analyze A/B test results for statistical significance with ship, extend, or kill recommendations
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Reallocate ad budget across campaigns and channels using ROAS and marginal return analysis
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Generate structured creative briefs for ad designers with brand-consistent direction
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Mine winning ad angles, hooks, and creative patterns from top-performing ads
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Monitor competitor ads across Meta, Google, and LinkedIn with strategic analysis
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Interactive onboarding wizard that generates agency.config.json for any B2B agency. Asks structured questions about the agency, services, ICP, tools, outreach preferences, and CRM setup. Outputs a complete config file.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.