Saltearse al contenido

CLI

El CLI g8 le da acceso por terminal a las herramientas de desarrollo de graph8: obtenga fragmentos de seguimiento específicos para cada framework y plantillas de formularios progresivos directamente desde su terminal.

Credenciales personales vs. de administrador

Para la mayoría de los usuarios, la autenticación del CLI debe provenir de su Perfil.

Caso de usoDónde obtener las credencialesQué usar
Uso personal del CLI en su equipoPerfil -> Desarrolladorg8 login (OAuth) o clave API personal
Cuenta de servicio compartida o automatización a nivel de organizaciónConfiguración -> APIClave API de organización

Instalación

Ventana de terminal
pip install g8-mcp-server

Esto instala el comando g8. Requiere Python 3.10+.

Autenticación

Tres formas de autenticarse:

g8 login (recomendado)

Ventana de terminal
g8 login

Abre el navegador para iniciar sesión mediante OAuth. Una vez autenticado, el token se guarda en ~/.g8/credentials.json y se utiliza automáticamente en todos los comandos posteriores. No se requiere clave API.

Clave API

Si prefiere usar una clave API, utilice su clave API personal desde Perfil -> Desarrollador. Los administradores también pueden usar claves de organización desde Configuración -> API para integraciones compartidas.

Guárdela localmente:

Ventana de terminal
g8 login --api-key

Le solicita que pegue una clave API, la valida y la guarda en ~/.g8/credentials.json.

O configúrela como variable de entorno:

Ventana de terminal
export G8_API_KEY="your_api_key_here"

g8 logout

Elimine las credenciales almacenadas:

Ventana de terminal
g8 logout

g8 whoami

Verifique el estado actual de su autenticación:

Ventana de terminal
g8 whoami
# Auth source: OAuth (~/.g8/credentials.json)
# Logged in as: [email protected]

Comandos

g8 snippet

Obtenga el fragmento de seguimiento de graph8 para cualquier framework compatible. El fragmento carga p.js, el script de seguimiento de graph8, en cada página.

Uso:

Ventana de terminal
# Get snippet for a framework
g8 snippet --framework nextjs
# List all supported frameworks
g8 snippet --list
# Get snippet for a specific repo
g8 snippet --framework react --repo-id <repo-id>
# Output as JSON
g8 snippet --framework html --format json

Opciones:

OpciónDescripción
--frameworkFramework de destino (requerido salvo que se use --list)
--listLista todos los frameworks compatibles
--repo-idID de repositorio para configuración específica (opcional)
--formatFormato de salida: text (predeterminado) o json

Frameworks compatibles:

FrameworkRenderizadoDescripción
htmlSSRHTML / Vanilla JS: etiqueta script en <head>
reactCSRReact: componente useEffect
nextjsSSRNext.js: next/script para App Router y Pages Router
vueCSRVue: composable onMounted
wordpressSSRWordPress: hook functions.php
webflowSSRWebflow: código personalizado en la configuración del proyecto
shopifySSRShopify: fragmento theme.liquid

Ejemplo de salida:

Ventana de terminal
$ g8 snippet --framework nextjs
graph8 Tracking Snippet — Next.js
Setup Steps:
1. App Router: add the Script to app/layout.tsx
2. Pages Router: add the Script to pages/_app.tsx
3. Use window.g8?.track() and window.g8?.identify() in client components
Code:
————————————————————————————————————————————————————————————
// app/layout.tsx (App Router)
import Script from 'next/script';
export default function RootLayout({ children }) {
return (
<html>
<head>
<Script
src="https://t.graph8.com/p.js"
data-write-key="your-write-key"
data-tracking-host="https://t.graph8.com"
strategy="afterInteractive"
/>
</head>
<body>{children}</body>
</html>
);
}
————————————————————————————————————————————————————————————
Tracking Methods:
identify: g8.identify("user-id", {email: "[email protected]", name: "Jane Doe"})
track: g8.track("event_name", {property: "value"})

Opciones de privacidad

El fragmento generado incluye atributos de datos que puede añadir para controlar el comportamiento de privacidad:

AtributoValoresDescripción
data-privacy-dont-send"true"Desactiva las cookies y el envío de eventos
data-privacy-user-ids"true"Desactiva el almacenamiento de identificadores de usuario
data-privacy-ip-policy"keep", "stripLastOctet", "remove"Controla el manejo de la dirección IP
data-init-only"true"Inicializa el script sin enviar un evento de página

Verificación del fragmento

Después de añadir el fragmento a su aplicación:

  1. Abra DevTools -> pestaña Red en el navegador
  2. Busque solicitudes a su host de seguimiento (/p.js)
  3. En la consola: window.g8 debe estar definido
  4. Llame a g8.track('test_event'): debería ver una solicitud de red

g8 form

Obtenga una plantilla de formulario progresivo: un formulario integrado o emergente que recopila datos por etapas a lo largo de múltiples visitas.

Uso:

Ventana de terminal
# Get an embedded form template
g8 form --framework react --variant embedded
# Get a popup form template
g8 form --framework nextjs --variant popup
# Custom field stages
g8 form --framework html --variant embedded \
--stages '[{"stage":1,"fields":[{"name":"email","type":"email","required":true}]}]'
# Output as JSON
g8 form --framework vue --variant popup --format json

Opciones:

OpciónDescripción
--frameworkFramework de destino (requerido)
--variantVariante del formulario: embedded o popup (requerido)
--repo-idID de repositorio para configuración específica (opcional)
--stagesEtapas de campos personalizados como cadena JSON (opcional)
--formatFormato de salida: text (predeterminado) o json

Variantes de formulario:

VarianteIdeal para
embeddedFormularios integrados dentro del contenido de la página (secciones de registro, pies de página, barras laterales)
popupFormularios modales o superpuestos activados por botones o eventos de página

Etapas del formulario progresivo

Los formularios recopilan datos de forma progresiva a lo largo de las visitas, solicitando un poco más cada vez. Las etapas predeterminadas son:

EtapaCamposPropósito
1work_emailCaptura inicial: mínima fricción
2first_name, last_name, companyEnriquecimiento de identidad
3job_title, phoneDatos de calificación

El formulario registra qué etapa ha completado el visitante usando localStorage y muestra la siguiente etapa en su próxima visita.

Etapas personalizadas: pase un array JSON a --stages para reemplazar los valores predeterminados:

Ventana de terminal
g8 form --framework react --variant embedded \
--stages '[
{"stage": 1, "fields": [
{"name": "email", "type": "email", "required": true}
]},
{"stage": 2, "fields": [
{"name": "name", "type": "text", "required": true},
{"name": "role", "type": "select", "required": false,
"options": ["Developer", "Manager", "Executive"]}
]}
]'

Flujo de datos

Cuando se envía un formulario, los datos fluyen a través del pipeline de seguimiento de graph8:

  1. El formulario captura los valores de los campos del visitante
  2. g8.identify() envía los datos al CDP de graph8
  3. g8.track() registra el evento de envío del formulario
  4. Los datos aparecen en el perfil del contacto en su espacio de trabajo de graph8

Formatos de salida

FormatoIndicadorDescripción
Texto--format text (predeterminado)Salida legible con encabezados, bloques de código y pasos de configuración
JSON--format jsonSalida legible por máquina: misma estructura que la respuesta de la herramienta MCP

El formato JSON es útil para redirigir a otras herramientas o scripts:

Ventana de terminal
g8 snippet --framework html --format json | jq '.snippet_code'

Flujo de trabajo

El orden recomendado para integrar graph8 en su aplicación:

  1. Instale el fragmento de seguimiento: este es siempre el primer paso

    Ventana de terminal
    g8 snippet --framework nextjs
  2. Añada el fragmento a su aplicación: siga los pasos de configuración indicados en la salida

  3. Configure el seguimiento: añada llamadas de identificación y seguimiento:

    // On login/signup
    g8.identify("user-123", { email: "[email protected]", name: "Jane" });
    // On key actions
    g8.track("plan_selected", { plan: "pro", billing: "annual" });
  4. Añada formularios progresivos: una vez que el seguimiento esté funcionando:

    Ventana de terminal
    g8 form --framework nextjs --variant embedded
  5. Verifique: abra la pestaña Red de DevTools y busque solicitudes a su host de seguimiento


Comandos de CRM

g8 search-contacts

Busque contactos que ya están en su CRM.

Ventana de terminal
g8 search-contacts --job-title "VP Sales" --limit 10
g8 search-contacts --email [email protected]
g8 search-contacts --company "Acme" --seniority VP
g8 search-contacts --list-id 637
OpciónDescripción
--emailFiltrar por correo electrónico (coincidencia exacta)
--nameFiltrar por nombre (coincidencia parcial)
--job-titleFiltrar por cargo (coincidencia parcial)
--seniorityFiltrar por antigüedad (C-Suite, VP, Director, Manager)
--companyFiltrar por nombre de empresa (coincidencia parcial)
--countryFiltrar por país
--list-idFiltrar por ID de lista de contactos
--pageNúmero de página (predeterminado 1)
--limitResultados por página (predeterminado 25)

g8 search-companies

Busque empresas en su CRM.

Ventana de terminal
g8 search-companies --industry "SaaS" --limit 10
g8 search-companies --domain acme.com
OpciónDescripción
--domainFiltrar por dominio
--industryFiltrar por sector
--nameFiltrar por nombre de empresa
--pageNúmero de página (predeterminado 1)
--limitResultados por página (predeterminado 25)

g8 create-contact

Cree un nuevo contacto en su CRM.

Ventana de terminal
g8 create-contact --email [email protected] --first-name Jane --last-name Smith --job-title "VP Sales"
g8 create-contact --email [email protected] --list-id 637
OpciónDescripción
--emailCorreo electrónico profesional (requerido)
--first-nameNombre
--last-nameApellido
--job-titleCargo
--company-domainDominio de la empresa
--list-idAñadir a esta lista de inmediato

g8 create-list

Cree una nueva lista de contactos o empresas.

Ventana de terminal
g8 create-list --title "VP Sales - SaaS SMB"
g8 create-list --title "Target Companies" --type companies
OpciónDescripción
--titleNombre de la lista (requerido)
--typecontacts (predeterminado) o companies

g8 add-to-list

Añada contactos existentes a una lista.

Ventana de terminal
g8 add-to-list --list-id 637 --contact-ids 5028106,5028105,5028104
OpciónDescripción
--list-idID de lista (requerido)
--contact-idsIDs de contactos separados por comas (requerido)

Comandos de prospección

g8 lookup-person

Busque una persona en el índice de datos de graph8, con más de 300M de registros. Cuesta 1 crédito.

Ventana de terminal
g8 lookup-person --email [email protected]
g8 lookup-person --linkedin "linkedin.com/in/jane-smith"
g8 lookup-person --first-name Jane --last-name Smith --company-domain acme.com
OpciónDescripción
--emailDirección de correo electrónico
--linkedinURL de LinkedIn
--first-nameNombre (úselo junto con apellido y dominio de empresa)
--last-nameApellido
--company-domainDominio de la empresa

g8 lookup-company

Busque una empresa. Cuesta 1 crédito.

Ventana de terminal
g8 lookup-company --domain tiledb.com
g8 lookup-company --name "Acme Corp"

g8 find-contacts

Busque nuevos prospectos en el índice de datos abiertos. Se cobran créditos por resultado.

Ventana de terminal
g8 find-contacts --filters '[{"field":"seniority_level","operator":"any_of","value":["VP","Director"]},{"field":"company_industry","operator":"contains","value":["SaaS"]}]' --limit 10
OpciónDescripción
--filtersArray JSON de objetos de filtro (requerido)
--pageNúmero de página (predeterminado 1)
--limitResultados por página (predeterminado 25)

Campos de filtro: first_name, last_name, work_email, job_title, seniority_level, company_name, company_domain, company_industry, company_employee_count, company_revenue, country, state, city

Operadores: any_of, contains, all_of, none_of, is_empty, is_not_empty, between, exists

g8 find-companies

Busque en la base de datos de empresas. Se cobran créditos por resultado.

Ventana de terminal
g8 find-companies --filters '[{"field":"industry","operator":"contains","value":["SaaS"]},{"field":"employee_count","operator":"between","value":[50,500]}]'

g8 build-list

Busque prospectos y guárdelos en una nueva lista. Se cobran créditos por contacto guardado.

Ventana de terminal
g8 build-list --filters '[{"field":"seniority_level","operator":"any_of","value":["VP"]}]' --title "VP Sales - SaaS" --max-results 50
OpciónDescripción
--filtersArray JSON de filtros (requerido)
--titleNombre de la lista (requerido)
--max-resultsMáximo de contactos a guardar (predeterminado 100)

Enriquecimiento

g8 enrich

Enriquezca contactos con correos electrónicos verificados, teléfonos y datos de empresa. Se cobran créditos por contacto.

Ventana de terminal
g8 enrich --contact-ids 5028106,5028105,5028104 --list-id 637
OpciónDescripción
--contact-idsIDs de contactos separados por comas (requerido)
--list-idID de la lista a la que pertenecen los contactos (requerido)

Secuencias

g8 sequences

Liste las secuencias outbound disponibles.

Ventana de terminal
g8 sequences --limit 10

g8 add-to-sequence

Inscriba contactos en una secuencia outbound.

Ventana de terminal
g8 add-to-sequence --sequence-id "0686895f-..." --contact-ids 5028106,5028105 --list-id 637
OpciónDescripción
--sequence-idID de secuencia obtenido con g8 sequences (requerido)
--contact-idsIDs de contactos separados por comas (requerido)
--list-idID de lista (requerido)

g8 create-sequence

Cree una nueva secuencia de prospección.

Ventana de terminal
g8 create-sequence --name "Q2 VP Outbound" --description "Multi-step email + LinkedIn sequence"
OpciónDescripción
--nameNombre de la secuencia (requerido)
--descriptionDescripción de la secuencia
--stepsArray JSON de configuraciones de pasos
--channelsArray JSON de configuraciones de canales
--campaign-idVincular a una campaña (opcional)

g8 sequence-preview

Previsualice los pasos y canales de una secuencia antes de iniciarla.

Ventana de terminal
g8 sequence-preview --sequence-id "0686895f-..."

g8 update-sequence

Actualice los metadatos de una secuencia.

Ventana de terminal
g8 update-sequence --sequence-id "0686895f-..." --name "Updated Name" --description "New goal"

g8 pause-sequence

Pause una secuencia activa. No se enviarán nuevos mensajes hasta que se reanude.

Ventana de terminal
g8 pause-sequence --sequence-id "0686895f-..."

g8 resume-sequence

Reanude una secuencia pausada. Los tiempos de ejecución se recalculan respetando el horario laboral.

Ventana de terminal
g8 resume-sequence --sequence-id "0686895f-..."

g8 sequence-analytics

Obtenga métricas de rendimiento para una secuencia.

Ventana de terminal
g8 sequence-analytics --sequence-id "0686895f-..."

Devuelve datos de resumen (total de contactos, tasa de finalización), rendimiento (embudo, tasas de respuesta), interacción (tasa de respuesta, tasa de rebote) y datos de línea de tiempo.

g8 delete-sequence

Archive una secuencia (eliminación lógica). Las secuencias activas se pausan primero.

Ventana de terminal
g8 delete-sequence --sequence-id "0686895f-..."

Bandeja de entrada

g8 inbox-list

Liste los hilos de respuesta en correo electrónico, SMS y LinkedIn.

Ventana de terminal
g8 inbox-list --channel email --limit 20
g8 inbox-list --sequence-id "0686895f-..." --status unread
g8 inbox-list --assignee [email protected] --tag qualified
OpciónDescripción
--channelFiltrar por canal: email, sms, linkedin
--sequence-idFiltrar por secuencia
--statusFiltrar por estado del hilo
--assigneeFiltrar por correo electrónico del usuario asignado
--tagFiltrar por etiqueta
--pageNúmero de página (predeterminado 1)
--limitResultados por página (predeterminado 20)

g8 inbox-get

Obtenga un hilo de respuesta individual con el historial completo de mensajes.

Ventana de terminal
g8 inbox-get --reply-id <thread-id> --channel email

g8 inbox-assign

Asigne un hilo de respuesta a un miembro del equipo.

Ventana de terminal
g8 inbox-assign --reply-id <thread-id> --assignee [email protected]

g8 inbox-tag

Etiquete un hilo de respuesta para su categorización.

Ventana de terminal
g8 inbox-tag --reply-id <thread-id> --tag-ids "qualified,hot-lead"

g8 inbox-draft

Genere un borrador de respuesta con IA basado en el contexto de la conversación. Consume créditos.

Ventana de terminal
g8 inbox-draft --reply-id <thread-id>

g8 inbox-send

Envíe una respuesta por correo electrónico, SMS o LinkedIn.

Ventana de terminal
g8 inbox-send --reply-id <thread-id> --channel email --body "Thanks for your interest..."

Audiencias y sincronización con CRM

g8 sync-audience-list

Liste las sincronizaciones de audiencias configuradas con plataformas publicitarias.

Ventana de terminal
g8 sync-audience-list

g8 sync-audience-create

Cree una nueva sincronización de audiencia con Meta, LinkedIn Ads, Google Ads o X.

Ventana de terminal
g8 sync-audience-create --audience-id 42 --platform meta --mode mirror --cadence 24
OpciónDescripción
--audience-idID de audiencia o lista de origen (requerido)
--platformPlataforma de destino: meta, linkedin, google, x (requerido)
--modeModo de sincronización: mirror (reemplazo completo) o append_only (requerido)
--cadenceFrecuencia de actualización en horas (0 = solo manual)

g8 sync-audience-trigger

Active manualmente una ejecución de sincronización.

Ventana de terminal
g8 sync-audience-trigger --config-id <id>

g8 sync-audience-runs

Vea el historial de ejecuciones de sincronización con recuentos de registros.

Ventana de terminal
g8 sync-audience-runs --config-id <id>

g8 sync-audience-errors

Vea los registros de errores de ejecuciones de sincronización fallidas.

Ventana de terminal
g8 sync-audience-errors --config-id <id>

g8 sync-crm-list

Liste las integraciones de CRM conectadas.

Ventana de terminal
g8 sync-crm-list

g8 sync-crm-push

Envíe contactos, empresas o membresías de listas a un CRM.

Ventana de terminal
g8 sync-crm-push --provider hubspot --type contacts --records '[{"email":"[email protected]","properties":{"firstname":"Jane"}}]'
g8 sync-crm-push --provider salesforce --type companies --records '[{"Name":"Acme Corp","Website":"acme.com"}]'
OpciónDescripción
--providerProveedor de CRM: hubspot, salesforce, pipedrive, zoho, sugarcrm (requerido)
--typeTipo de envío: contacts, companies, lists (requerido)
--recordsArray JSON de registros a enviar (requerido)

g8 sync-crm-fields

Descubra los mapeos de campos disponibles para un proveedor de CRM.

Ventana de terminal
g8 sync-crm-fields --provider hubspot

g8 sync-crm-status

Verifique el estado de la conexión al CRM y los límites de frecuencia.

Ventana de terminal
g8 sync-crm-status --provider salesforce

Campañas

g8 campaigns

Liste las campañas de su organización.

Ventana de terminal
g8 campaigns --limit 10

g8 campaign

Obtenga los detalles completos de una campaña específica.

Ventana de terminal
g8 campaign 4781adce-464b-402e-9a69-b6dbb6376150

Redirección y scripting

Todos los comandos generan salida en JSON, lo que los hace integrables en scripts:

Ventana de terminal
# Extract emails from search results
g8 search-contacts --job-title "CTO" --limit 50 | jq '.[].work_email'
# Count contacts in a list
g8 search-contacts --list-id 637 | jq 'length'
# Export to CSV
g8 search-contacts --seniority VP --limit 100 | jq -r '.[] | [.first_name,.last_name,.work_email,.job_title] | @csv'