Zum Inhalt springen
NeuSo funktioniert es

FirstSales mit Gemini verwenden

Verbinden Sie Gemini mit FirstSales über die REST-API mit eng begrenzten Funktionstools — lesen vor schreiben, Berechtigungen pro Tool und sichere, überprüfbare Änderungen.

  1. Zwei Wege, Gemini anzubinden

    Wenn Ihre Gemini-Umgebung (z. B. die Gemini CLI mit Shell-Zugriff) npm ausführen kann, installieren Sie @firstsales.io/cli und stellen Sie sie als Tool bereit: sie übernimmt Auth, JSON und Idempotenz. Läuft Gemini nur über eine API, rufen Sie die FirstSales Developer API per HTTPS aus Ihren Funktions-/Tool-Implementierungen auf. In der Dokumentation wird Gemini standardmäßig zu den API-first-Agenten gezählt.

  2. Den Schlüssel außerhalb des Modells speichern

    Erstellen Sie einen Developer-API-Schlüssel unter Settings → API und bewahren Sie ihn serverseitig in Ihrer App-Konfiguration als FIRSTSALES_API_KEY auf. Gemini sollte ein Tool/eine Funktion aufrufen, das den Schlüssel serverseitig liest: das Modell selbst darf den rohen Schlüssel nie sehen oder ausgeben.

    FIRSTSALES_API_KEY=fs-key-...
    FIRSTSALES_BASE_URL=https://api.app.firstsales.io
  3. Enge Tools definieren, keine rohe HTTP-Fluchttür

    Geben Sie Gemini eine kleine Menge zweckgebundener Funktionen (whoami, list_contacts, create_contact, campaign_analytics) jede davon einem einzigen öffentlichen Endpunkt zugeordnet. So bleibt das Modell auf der unterstützten Oberfläche, statt beliebige URLs konstruieren zu können.

    # what each tool calls under the hood
    GET  /api/v1/whoami
    GET  /api/v1/organizations/{org}/workspaces/{ws}/contacts
    POST /api/v1/organizations/{org}/workspaces/{ws}/contacts     # Idempotency-Key
    GET  /api/v1/organizations/{org}/workspaces/{ws}/campaigns/{id}/analytics
  4. Identität beim ersten Tool-Aufruf verifizieren

    Lassen Sie den Agenten vor jedem Schreibvorgang whoami aufrufen, damit er Org- und Workspace-Kontext bestätigt:

    curl https://api.app.firstsales.io/api/v1/whoami \
      -H "Authorization: Bearer $FIRSTSALES_API_KEY"
  5. Aus dem Create-Tool idempotent schreiben

    Ihr create_contact-Tool sollte immer einen Idempotency-Key mitschicken, damit ein wiederholter Funktionsaufruf nicht doppelt schreibt:

    curl -X POST \
      https://api.app.firstsales.io/api/v1/organizations/ORG_ID/workspaces/WS_ID/contacts \
      -H "Authorization: Bearer $FIRSTSALES_API_KEY" \
      -H "Content-Type: application/json" \
      -H "Idempotency-Key: gemini-lead-2026-01" \
      -d '{"email":"[email protected]","first_name":"Sam"}'
  6. Fehler behandeln und auf der öffentlichen Oberfläche bleiben

    Behandeln Sie in jedem Tool 401 (falscher/widerrufener Schlüssel), 422 (Validierung (das betroffene Feld ausgeben) und 429 (drosseln, dann erneut versuchen). Bei unsupported_operation geben Sie die Einschränkung an das Modell zurück und stoppen) lassen Sie Gemini niemals die App scrapen oder private Routen, Callbacks, Pixel oder Cron-Endpunkte ansprechen.

Profi-Tipps

  • Endpunkte als enge Tools verpacken

    Geben Sie Gemini keine generische 'beliebige URL aufrufen'-Funktion. Zweckgebundene Tools (create_contact, campaign_analytics) halten das Modell auf der öffentlichen Oberfläche und machen seine Aktionen auditierbar.

  • Das Modell fasst den Schlüssel nie an

    Lesen Sie FIRSTSALES_API_KEY serverseitig innerhalb des Tools. Kann der Schlüssel im Kontext oder in der Ausgabe des Modells erscheinen, kann er in Logs landen.

  • whoami als ersten Funktionsaufruf

    Machen Sie die Identitätsprüfung zum Eröffnungsschritt, damit Gemini Org/Workspace immer vor dem Schreiben bestätigt.

  • Shell vorhanden? Die CLI ist weniger Code

    Hat die Gemini CLI Shell- und npm-Zugriff, schlägt ein Aufruf der firstsales-CLI das manuelle Bauen von HTTP-Tools: Auth, JSON, Idempotenz und Lösch-Bestätigung gibt es gratis dazu.

Häufig gestellte Fragen

Nutzt Gemini die CLI oder die API?

Standardmäßig die Developer API, als Funktionen/Tools verpackt. Hat Ihre Gemini-Umgebung Shell-Zugriff mit npm, ist die CLI eine aufwandsärmere Alternative, die Auth und Idempotenz für Sie übernimmt.

Wie halte ich den Schlüssel vom Modell fern?

Speichern Sie FIRSTSALES_API_KEY in der serverseitigen Konfiguration und lesen Sie ihn innerhalb der Tool-Implementierung. Das Modell ruft das Tool auf; es sieht oder gibt den rohen Schlüssel nie aus.

Wie sollte ich die Tools strukturieren?

Als enge, einzweckige Funktionen: eine pro öffentlichem Endpunkt (whoami, Kontakt auflisten/erstellen, Kampagnen-Analytics). Vermeiden Sie ein generisches 'beliebige URL abrufen'-Tool, das dem Modell erlaubt, die unterstützte Oberfläche zu verlassen.

Wie vermeide ich doppelte Schreibvorgänge?

Fügen Sie innerhalb Ihres Create-Tools einen Idempotency-Key-Header hinzu. Ein wiederholter Funktionsaufruf mit demselben Schlüssel liefert das ursprüngliche Ergebnis zurück, statt ein Duplikat zu erstellen.

Was ist tabu?

App-interne Routen, Anbieter-Callbacks, Tracking-Pixel, Abmelde-Handler, interne Cron-Endpunkte und das Scrapen der Oberfläche. Bleiben Sie auf der öffentlichen /api/v1; stoppen Sie bei unsupported_operation.

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.