Zum Inhalt springen
NeuSo funktioniert es

Kontakte mit der FirstSales-CLI verwalten

CRUD für Kontakte, Listen und Tags über die Kommandozeile — idempotente Erstellungen, Massenimporte, Exporte und gezielte Löschungen, begrenzt auf eine Org und einen Workspace.

  1. Kontakte auflisten und lesen

    Alles ist auf eine Org und einen Workspace beschränkt. Beginnen Sie schreibgeschützt: listen Sie Kontakte auf und rufen Sie dann einen per ID ab:

    firstsales contacts list --org ORG_ID --workspace WS_ID --json
    firstsales contacts get --org ORG_ID --workspace WS_ID --contact CONTACT_ID
  2. Einen Kontakt erstellen und aktualisieren

    Erstellen Sie mit einem Idempotenz-Schlüssel, damit Wiederholungen keine Duplikate erzeugen; ein Update ändert nur die von Ihnen gesendeten Felder:

    firstsales contacts create --org ORG_ID --workspace WS_ID \
      --data '{"email":"[email protected]","first_name":"Jane","company_name":"Acme"}' \
      --idempotency-key jane-acme-2026-01
    
    firstsales contacts update --org ORG_ID --workspace WS_ID \
      --contact CONTACT_ID --data '{"job_title":"VP Sales"}'
  3. Mit Listen organisieren

    Kontaktlisten legen fest, an wen eine Kampagne sendet. Erstellen, benennen Sie um und löschen Sie Listen über die CLI:

    firstsales contact-lists list --org ORG_ID --workspace WS_ID
    firstsales contact-lists create --org ORG_ID --workspace WS_ID \
      --data '{"name":"Q1 SaaS founders"}'
    firstsales contact-lists update --org ORG_ID --workspace WS_ID \
      --list LIST_ID --data '{"name":"Q1 SaaS founders (US)"}'
  4. Tags in großem Umfang verwalten

    Tags sind frei definierbare Labels für Kontakte. Sie können ein Tag umbenennen (was zusammenführt) oder es überall löschen, wo es vorkommt: das Löschen ist destruktiv und erfordert daher --confirm:

    firstsales contact-tags list --org ORG_ID --workspace WS_ID
    firstsales contact-tags rename --org ORG_ID --workspace WS_ID \
      --data '{"from":"founder","to":"founders"}'
    firstsales contact-tags delete --org ORG_ID --workspace WS_ID \
      --data '{"tag":"stale"}' --confirm
  5. Massenimport

    Übertragen Sie einen Kontaktstapel per Importjob. Zielen Sie auf eine Liste; die Plattform dedupliziert serverseitig nach E-Mail-Adresse, sodass ein erneuter Import derselben Personen keine Kopien erzeugt:

    firstsales contact-imports create --org ORG_ID --workspace WS_ID \
      --data-file ./leads.json \
      --idempotency-key import-2026-01
  6. Exportieren, was Sie gefiltert haben

    Listen Sie Ihre Exportjobs auf / holen Sie Kontakte als CSV für Reporting oder Backup zurück:

    firstsales contact-exports list --org ORG_ID --workspace WS_ID
  7. Bewusst löschen

    Das Entfernen eines Kontakts ist destruktiv und erfordert --confirm. Bevorzugen Sie es, schlechte Adressen durch Cleaning automatisch unterdrücken zu lassen, statt hart zu löschen: das Löschen ist endgültig:

    firstsales contacts delete --org ORG_ID --workspace WS_ID \
      --contact CONTACT_ID --confirm

Profi-Tipps

  • Segmentieren mit Listen, kennzeichnen mit Tags

    Listen entscheiden, an wen eine Kampagne sendet; Tags sind übergreifende Labels zum Filtern. Nutzen Sie beides: ein Kontakt kann in einer Liste sein und viele Tags tragen.

  • Import ist idempotent und dedupliziert

    Serverseitige Deduplizierung nach E-Mail bedeutet, dass ein erneuter Importlauf Ihre Liste nicht verdoppelt. Übergeben Sie trotzdem --idempotency-key, damit der Job selbst nicht doppelt erstellt wird.

  • Nicht hart löschen, um zu unterdrücken

    Um jemanden nicht mehr anzuschreiben, lassen Sie Cleaning ihn als unsauber markieren oder verlassen Sie sich auf den Status bounced/unsubscribed: diese schließen automatisch aus. Reservieren Sie contacts delete --confirm für echtes Entfernen.

  • rename führt Tags zusammen

    Das Umbenennen eines Tags auf einen bereits vorhandenen Namen führt sie zusammen. Praktisch, um 'founder' vs. 'founders' zu bereinigen: aber nicht rückgängig zu machen, prüfen Sie also zuerst den Zielnamen.

Häufig gestellte Fragen

Wie sind Kontakte gescopt?

Auf eine Organisation und einen Workspace. Jeder Contact-Befehl benötigt --org und --workspace; dieselben Kontakt-IDs lassen sich in einem anderen Workspace nicht auflösen.

Wie vermeide ich doppelte Kontakte beim Import?

Importe deduplizieren serverseitig nach E-Mail-Adresse, sodass ein erneuter Import derselben Personen sie zur Liste hinzufügt, ohne Kopien zu erzeugen. Übergeben Sie --idempotency-key, damit der Importjob selbst ebenfalls sicher wiederholbar ist.

Was ist der Unterschied zwischen Listen und Tags?

Listen definieren die Zielgruppe, an die eine Kampagne sendet; Tags sind frei definierbare Labels zum Filtern und Segmentieren. Ein Kontakt gehört zu Listen und kann viele Tags tragen.

Wie entferne ich ein Tag überall?

contact-tags delete --confirm entfernt es von allen Kontakten, und contact-tags rename führt ein Tag mit einem anderen zusammen. Beides ist destruktiv, daher erfordert das Löschen --confirm.

Kann ich meine Kontakte exportieren?

Ja: nutzen Sie contact-exports, um Kontakte als CSV zurückzuholen. In der App spiegelt der Export Ihren aktuellen Filter/Ihre Auswahl wider; über die API arbeiten Sie mit Exportjobs.

Sollte ich Kontakte löschen, die bouncen?

Meist nicht. Bounced, unsubscribed und durch Cleaning markierte (unsaubere) Kontakte werden automatisch vom Versand ausgeschlossen, daher ist Löschen selten nötig. Löschen Sie hart nur, wenn Sie den Datensatz wirklich entfernen wollen, und es erfordert --confirm.

Entwickler & CLI

Akquise, die weiterläuft, wenn du offline bist.Leads, E-Mails, Follow-ups und Antworten, erledigt.

Verbinde unbegrenzte Postfächer und lass KI-Agenten Leads finden, jede E-Mail schreiben und nachfassen. Oder sende deine eigenen Vorlagen im manuellen Modus. Ab $29/Monat.

$1 für 3 Tage · Jederzeit kündbar · Kein Vertrag

Mit KI installieren

Dein Coding-Agent richtet die FirstSales CLI und Skills für dich ein.

Prompt für Claude Code

I'm setting up FirstSales (https://firstsales.io), an AI outbound sales platform: campaigns, contacts, a reply inbox, deliverability and lead signals. Help me get my workspace sending real, good emails end to end, from Claude Code.

Read these first so you know how FirstSales works:
- Developer docs and API: https://developer.firstsales.io
- CLI: https://www.npmjs.com/package/@firstsales.io/cli
- Skills for coding agents: https://github.com/firstsalesio/firstsales-skills (read README.md and GUIDE.md)

Setup
1. Install the CLI: npm install -g @firstsales.io/cli
2. Install the FirstSales skills:
   claude plugin marketplace add firstsalesio/firstsales-skills
   claude plugin install firstsales@firstsales
3. Ask me if I already have a FirstSales account. If not, send me to https://app.firstsales.io to sign up.
4. Ask me to create an API key under Settings → API → API Keys, with only the scopes we need.
   Never ask me to paste the key into this chat. Tell me to run this in my own terminal, so the key stays hidden:
   read -rs FS_KEY && firstsales auth login --api-key "$FS_KEY"; unset FS_KEY
5. Run `firstsales whoami` and tell me which workspace and organisation we are connected to.

Then ask me about my business: what I sell, who I sell to (roles, company size, countries), my best customers, and what I use today for outbound (tools, lists, mailboxes). Walk me through:
1. Teaching FirstSales my business: website, offer, proof points and case studies in the knowledge base, so the AI writes like someone who knows the product.
2. Connecting my sending mailboxes and checking my sending domain: SPF, DKIM, DMARC and warm-up. If anything is unhealthy, tell me the exact DNS record to add.
3. Bringing in contacts: import my CSV or CRM export into a clean list, remove duplicates and bad emails, and block domains I must never email (customers, competitors, my own).
4. Building my first campaign: the right list, senders, steps and timing. Write the sequence with me, show me the drafts, and do not launch until I say yes.
5. Setting up Signals if it fits: find people engaging with LinkedIn posts about topics my buyers care about, and turn them into leads.
6. Inviting my team and giving each person the right access.

Once campaigns run, show me how to work the reply inbox from here: which replies need an answer, draft responses in my voice, and move good conversations into deals. If I use Cal.com, connect it so follow-ups can offer my booking link (not the first email).

Throughout, as you learn about my business, proactively suggest and help create:
- Reply templates for the questions and objections my prospects are likely to raise, based on my product, site and codebase if you can see them.
- Campaign ideas and segments worth testing, with the reason for each.

Safety rules:
- Show every change as a dry run (--dry-run) first and wait for my yes. Never send emails, launch campaigns or delete anything without my yes.
- Tell me before anything that spends credits, and how many.

Be opinionated. If the docs give a sensible default, just use it. Don't make me choose between five options.