Saltearse al contenido

CLI Examples

Esta página aún no está disponible en tu idioma.

Six worked workflows you can run today. Each example assumes you’ve already authenticated (g8 login or export G8_API_KEY=...). See CLI overview for the full command reference.

1. Prospect and save to list

Find VPs of Engineering at SaaS companies, save the top 50 to a campaign list.

Terminal window
# 1. Create the target list
LIST_ID=$(g8 create-list --title "Q3 VP Engineering — SaaS SMB" | jq -r '.id')
# 2. Search + save in one shot (credits charged per contact saved)
g8 build-list --title "Q3 VP Engineering — SaaS SMB" \
--filters '[
{"field":"seniority_level","operator":"any_of","value":["VP"]},
{"field":"job_title","operator":"contains","value":["Engineering"]},
{"field":"company_industry","operator":"contains","value":["SaaS"]},
{"field":"company_employee_count","operator":"between","value":[50,500]}
]' \
--max-results 50

2. Sequence enrollment

Add a saved list of contacts to a sequence, then track engagement.

Terminal window
# 1. List sequences and grab the one you want
SEQ_ID=$(g8 sequences --limit 50 | jq -r '.[] | select(.name=="Q3 VP Engineering Outbound") | .id')
# 2. Get contact IDs from the list
CONTACT_IDS=$(g8 search-contacts --list-id 637 --limit 100 | jq -r '[.[].id] | join(",")')
# 3. Enroll (real sends — verify first)
g8 add-to-sequence --sequence-id "$SEQ_ID" --contact-ids "$CONTACT_IDS" --list-id 637
# 4. Check engagement 24 hours later
g8 sequence-analytics --sequence-id "$SEQ_ID"

3. Quote-to-cash

Create and send a quote with a signing link + payment link.

Terminal window
# 1. Discover the product catalog
g8 list-quotable-products | jq -r '.[] | "\(.id)\t\(.name)\t$\(.unit_price)/\(.currency)"'
# 2. Create the quote
QUOTE_ID=$(g8 create-quote \
--contact-id 5028106 \
--line-items '[
{"product_id":"prod_platform","quantity":1,"unit_price":499,"recurring":true},
{"name":"Onboarding (one-time)","quantity":1,"unit_price":2500}
]' \
--currency USD \
--expires-at 2026-07-15T00:00:00Z \
--notes "Includes 90-day money-back guarantee." | jq -r '.id')
# 3. Send it
g8 send-quote --quote-id "$QUOTE_ID" --recipient-email [email protected]
# 4. Track signature status
g8 get-quote --quote-id "$QUOTE_ID" | jq '.status'

4. Reply triage and AI draft

Pull unread inbox threads, generate AI drafts, send replies.

Terminal window
# 1. List unread email threads
g8 inbox-list --channel email --status unread --limit 20 | jq -c '.[]' > /tmp/unread.jsonl
# 2. For each, generate an AI draft (costs credits per draft)
while read -r thread; do
REPLY_ID=$(echo "$thread" | jq -r '.id')
DRAFT=$(g8 inbox-draft --reply-id "$REPLY_ID" --channel email | jq -r '.body')
# Print for human review (uncomment send to actually deliver)
echo "=== Thread $REPLY_ID ==="
echo "$DRAFT"
echo
# g8 inbox-send --reply-id "$REPLY_ID" --channel email --body "$DRAFT"
done < /tmp/unread.jsonl

5. Build + execute a workflow

Author a stage-checklist pipeline, attach it to a workflow, run it.

Terminal window
# 1. Get an AI-suggested pipeline based on org context
g8 suggest-stage-pipeline | jq '.'
# 2. Promote the suggestion (replace ID with your real one)
g8 create-stage-pipeline-from-suggestion --suggestion-id sug_abc123 --name "PLG Path"
# 3. Author a workflow that triggers on a form submit
WF_ID=$(g8 workflow-create --name "Demo qualification" \
--config '{
"nodes": [
{"id":"n1","type":"form_trigger","config":{"form_id":"demo_request"}},
{"id":"n2","type":"slack_message","config":{"channel_id":"C0123","text":"New demo: {{n1.contact.work_email}}"}}
],
"connections":[{"from_node_id":"n1","to_node_id":"n2"}]
}' | jq -r '.id')
# 4. Validate
g8 workflow-validate --config "$(g8 workflow-get --workflow-id "$WF_ID" | jq -c '.config')"
# 5. Activate
g8 workflow-update --workflow-id "$WF_ID" --is-active true

6. Intent-driven outreach

Find companies visiting a competitor URL, search for decision-makers, enroll them.

Terminal window
# 1. Hot accounts visiting competitor pricing
g8 intent-url-companies --url "https://competitor.com/pricing" \
--date-from 2026-05-01 --limit 50 \
| jq -r '.[].domain' > /tmp/hot_domains.txt
# 2. For each hot domain, find VPs/Directors
> /tmp/new_contacts.txt
while read -r DOMAIN; do
g8 find-contacts \
--filters "[
{\"field\":\"company_domain\",\"operator\":\"any_of\",\"value\":[\"$DOMAIN\"]},
{\"field\":\"seniority_level\",\"operator\":\"any_of\",\"value\":[\"C-Suite\",\"VP\",\"Director\"]}
]" \
--limit 5 \
| jq -r '.[].id' >> /tmp/new_contacts.txt
done < /tmp/hot_domains.txt
# 3. Enroll in competitive displacement sequence (real sends)
IDS=$(paste -sd, /tmp/new_contacts.txt)
g8 add-to-sequence --sequence-id seq_competitive_displacement --contact-ids "$IDS" --list-id 0

Patterns and idioms

Save command output for replay

Terminal window
g8 search-contacts --job-title CTO --limit 200 > snapshot.json
jq -r '.[].work_email' snapshot.json | sort -u > emails.txt

Bulk-create from CSV

Terminal window
tail -n +2 leads.csv | while IFS=',' read -r email first last title; do
g8 create-contact --email "$email" --first-name "$first" --last-name "$last" --job-title "$title"
done

Parallel-safe (respecting 5 rps)

Terminal window
cat domains.txt | xargs -n 1 -P 3 -I {} \
bash -c 'sleep 0.6; g8 lookup-company --domain "{}"'

Watch a long-running execution

Terminal window
EXEC_ID=$(g8 workflow-execute --workflow-id wf_abc --trigger-payload '{}' | jq -r '.id')
while : ; do
STATUS=$(g8 workflow-get-execution --execution-id "$EXEC_ID" | jq -r '.status')
echo "$(date +%T) $STATUS"
[[ "$STATUS" == "completed" || "$STATUS" == "failed" || "$STATUS" == "stopped" ]] && break
sleep 5
done

See also