n8n
Eigene Workflows mit dem Cord-Node oder mit dem HTTP-Node für jeden beliebigen Endpoint.
Was es tut
n8n verbindet sich auf zwei Arten mit Cord. Der Cord-Node (n8n-nodes-cord) ist der kurze Weg: Er bringt einen Trigger mit, Cord Trigger, der Ihren Workflow startet, wenn in Cord etwas passiert, und einen Aktions-Node, Cord, der Kunden, Angebote und Aufgaben anlegt und abruft. Der Node HTTP Request dient für jeden Endpoint der API, den der Cord-Node noch nicht abdeckt.
n8n verwendet einen API-Schlüssel von Cord, nicht die Autorisierung mit einem Klick wie Zapier und Make: Jede n8n-Installation hat ihre eigene Rücksprungadresse, und Cord akzeptiert nur Adressen, die vorab registriert wurden.
Voraussetzungen
| Wo | Was Sie brauchen |
|---|---|
| Cord | Die Berechtigung Einstellungen, um den Entwicklermodus zu aktivieren und einen geheimen Schlüssel mit Schreibberechtigung zu erstellen. Jeder Tarif. |
| n8n | Eine eigene n8n-Installation in Version 1.x und Administratorrechte, um Community-Nodes zu installieren. In n8n Cloud erscheint der Node, sobald n8n die Verifizierung abgeschlossen hat. |
| Netzwerk | Eine öffentliche https-Adresse für Ihr n8n: Cord stellt keine Ereignisse an http, localhost oder interne bzw. private Adressen zu. |
| Kontingent | Jede Operation des Nodes verbraucht Aufrufe aus dem monatlichen API-Kontingent Ihres Cord-Tarifs. Siehe Limits. |
Mit dem Cord-Node verbinden
- Öffnen Sie in n8n Settings › Community nodes und installieren Sie
n8n-nodes-cord. - Gehen Sie in Cord zu Einstellungen, aktivieren Sie am Ende der Übersicht den Entwicklermodus und öffnen Sie API. Erstellen Sie einen geheimen Schlüssel mit Schreibberechtigung; Schlüssel, die mit
sk_test_beginnen, arbeiten in Ihrer Testumgebung. Der Schlüssel wird nur einmal angezeigt. - Legen Sie in n8n ein Credential Cord API an und fügen Sie den Schlüssel ein. Mit der Testschaltfläche prüfen Sie, ob der Schlüssel funktioniert.
- Fügen Sie den Node Cord Trigger hinzu, wählen Sie die Ereignisse und aktivieren Sie den Workflow: n8n registriert den Webhook in Cord und löscht ihn, wenn Sie den Workflow deaktivieren.
- Um in Cord etwas auszuführen, verwenden Sie den Node Cord.
Der Trigger: Cord Trigger
Unter Events wählen Sie eines oder mehrere der 41 Ereignisse von Cord. Cord sendet nur die gewählten, und der Node prüft die Signatur X-Cord-Signature-V1 jeder Zustellung mit dem Secret, das er beim Registrieren des Webhooks erhalten hat (Verify Signature, standardmäßig aktiviert): Ein POST, der nicht von Cord kommt, wird abgelehnt.
Die Ereignisse erscheinen in n8n auf Englisch, nach Kategorie gruppiert:
| Kategorie | Ereignis in n8n | Schlüssel | Wann es eintritt |
|---|---|---|---|
| Quotes | Quote created | quote.created |
Ein Angebot wird erstellt. |
| Quotes | Quote sent | quote.sent |
Ein Angebot wird gesendet. |
| Quotes | Client opened a quote | quote.viewed |
Der Kunde öffnet das Angebot. |
| Quotes | Quote approved | quote.approved |
Ein Angebot wird bestätigt. |
| Quotes | Quote rejected | quote.rejected |
Ein Angebot wird abgelehnt. |
| Quotes | Quote edited and resent | quote.updated |
Ein Angebot wird geändert und erneut gesendet. |
| Quotes | Quote expired | quote.expired |
Ein Angebot läuft ab. |
| Quotes | Draft deleted | quote.deleted |
Ein Entwurf wird gelöscht. |
| Quotes | Message posted on a quote | quote.comment_added |
Eine Nachricht zu einem Angebot geht ein. |
| Approvals | Internal approval requested | quote.approval_requested |
Ein Angebot benötigt eine interne Freigabe. |
| Approvals | Internal approval decided | quote.approval_decided |
Über eine interne Freigabe wird entschieden. |
| Payments | Quote paid in full | quote.paid |
Ein Angebot wird vollständig bezahlt. |
| Payments | Partial payment received | payment.partial |
Eine Teilzahlung geht ein. |
| Payments | Recurring charge failed | payment.failed |
Eine wiederkehrende Zahlung schlägt fehl. |
| Payments | Dispute opened | dispute.created |
Eine Rückbuchung wird eingeleitet. |
| Payments | Dispute closed | dispute.closed |
Eine Rückbuchung wird abgeschlossen. |
| Payments | Refund succeeded | refund.succeeded |
Eine Rückerstattung wird abgeschlossen. |
| Payments | Refund failed | refund.failed |
Eine Rückerstattung schlägt fehl. |
| Payments | Payout paid | payout.paid |
Eine Auszahlung wird auf Ihr Bankkonto überwiesen. |
| Payments | Payout failed | payout.failed |
Eine Auszahlung schlägt fehl. |
| Payments | Payments account updated | account.updated |
Ihr Zahlungskonto ändert sich. |
| Invoices | Quote invoiced | invoice.issued |
Ein Angebot wird abgerechnet. |
| Invoices | Quote CFDI stamped | invoice.stamped |
Das CFDI eines Angebots wird gestempelt. |
| Invoices | Invoice issued | invoice.finalized |
Eine Rechnung wird ausgestellt. |
| Invoices | Invoice sent | invoice.sent |
Eine Rechnung wird gesendet. |
| Invoices | Invoice paid | invoice.paid |
Eine Rechnung wird bezahlt. |
| Invoices | Invoice payment failed | invoice.payment_failed |
Die Zahlung einer Rechnung schlägt fehl. |
| Invoices | Invoice overdue | invoice.overdue |
Eine Rechnung wird überfällig. |
| Invoices | Invoice voided | invoice.voided |
Eine Rechnung wird storniert. |
| Invoices | Invoice marked uncollectible | invoice.marked_uncollectible |
Eine Rechnung wird als uneinbringlich markiert. |
| Clients | Client created | client.created |
Ein Kunde wird erstellt. |
| Clients | Client updated | client.updated |
Ein Kunde wird aktualisiert. |
| Clients | Client deleted | client.deleted |
Ein Kunde wird gelöscht. |
| Products | Product created | product.created |
Ein Produkt wird erstellt. |
| Products | Product updated | product.updated |
Ein Produkt wird aktualisiert. |
| Products | Product deleted | product.deleted |
Ein Produkt wird gelöscht. |
| Tasks | Task created | task.created |
Eine Aufgabe wird erstellt. |
| Tasks | Task completed | task.completed |
Eine Aufgabe wird erledigt. |
| Tasks | Payment promise recorded | promise.created |
Eine Zahlungszusage wird erfasst. |
| Tasks | Payment promise kept | promise.kept |
Eine Zahlungszusage wird eingehalten. |
| Tasks | Payment promise broken | promise.broken |
Eine Zahlungszusage wird nicht eingehalten. |
Die zeitbasierten Auslöser von Cord Workflows (bald fällige Termine und seit Tagen überfällige Rechnungen) und der geplante Auslöser existieren in n8n nicht: Bauen Sie sie mit dem Node Schedule Trigger von n8n und den Suchen des Nodes Cord nach. Welche Felder jedes Ereignis enthält, steht unter Webhooks für Entwickler.
Wenn Sie die Ereignisse eines bereits aktiven Cord Trigger ändern, filtert der Node die entfernten heraus, auch wenn Cord sie weiterhin sendet; damit Cord sie nicht mehr sendet, deaktivieren Sie den Workflow und aktivieren Sie ihn erneut.
Die Aktionen: der Node Cord
| Ressource | Operation | Felder |
|---|---|---|
| Client | Create | Company (Pflichtfeld). Optional: Contact, Email, Phone, Tax ID, Country Code und Payment Terms (Upfront, Net 7, Net 15, Net 30, Net 45, Net 60 oder Net 90; Net 7, Net 15, Net 45 und Net 90 ab Version 1.2.0 des Nodes). |
| Client | Update | Client ID und die Felder, die Sie ändern möchten. |
| Client | Get | Client ID. |
| Client | Search | Text oder E-Mail-Adresse, nach der gesucht wird. |
| Quote | Create | Client ID und Items (Description, Quantity, Unit Price). Optional: Currency, Payment Terms, Valid For (Days), Notes und Send Now, um das Angebot direkt beim Anlegen zu senden. |
| Quote | Get | Quote ID. |
| Quote | Search | Angebotsnummer oder Kunde, nach dem gesucht wird. |
| Quote | Send | Quote ID eines Entwurfs. |
| Quote | Mark as Paid | Quote ID und optional Payment Method. |
| Task | Create | Title. Optional: Due Date und Quote ID, um die Aufgabe mit einem Angebot zu verknüpfen. |
Der Node Cord lässt sich auch als Tool eines KI-Agenten in n8n verwenden.
Mit dem Node HTTP Request
- Um Ereignisse zu empfangen, fügen Sie im Tab Webhooks der Workbench einen Webhook mit der URL des n8n-Nodes Webhook hinzu und wählen Sie die Ereignisse.
- Um die API aufzurufen, verwenden Sie HTTP Request mit
https://cordhq.app/api/v1/...und dem HeaderAuthorization: Bearer sk_.... - Fügen Sie beim Anlegen von Daten den Header
Idempotency-Keymit einem eindeutigen Wert pro Vorgang hinzu, damit eine Wiederholung sie nicht doppelt anlegt.
Mit dem generischen Node Webhook prüfen Sie die Signatur selbst; die Details finden Sie unter Webhooks für Entwickler.
Was in welche Richtung fließt
| Richtung | Was übertragen wird | Wann |
|---|---|---|
| Von Cord zu n8n | Die Ereignisse, die Sie in Cord Trigger gewählt haben, signiert, mit id, event, created_at und data. |
Sofort, jedes Mal, wenn es in Cord eintritt. Antwortet n8n nicht, wiederholt Cord die Zustellung. |
| Von n8n zu Cord | Was der Node Cord oder Ihr HTTP Request tut: Kunden, Angebote, erfasste Zahlungen oder Aufgaben. | Wenn der Workflow ausgeführt wird. |
Was n8n in Cord tut, löst dieselben Ereignisse aus, als hätte es eine Person getan, mit Ausgelöst von: Die API. Wenn ein Workflow auf ein Ereignis reagiert und es zugleich auslöst, achten Sie auf Endlosschleifen: Filtern Sie nach dem geänderten Feld oder danach, wer das Ereignis ausgelöst hat.
Limits
| Limit | Wert |
|---|---|
| API-Aufrufe pro Monat | Kostenlos 100, Starter 1.000, Professional 5.000, Scale 10.000, Developer 50.000 |
| Bei Überschreitung des Kontingents | Im kostenlosen Tarif werden Aufrufe bis zum nächsten Monat abgelehnt; ab Starter werden sie als Mehrverbrauch berechnet, mit einer Sicherheitsgrenze beim Zehnfachen des enthaltenen Volumens |
| Aktive API-Schlüssel | Kostenlos 2, Starter 5, Professional 20, Scale 50, Developer 200 |
| Webhooks, die Cord Trigger registriert | 100 pro Organisation, gemeinsam mit Zapier und Make, unabhängig von den Endpoints Ihres Tarifs |
| Webhooks, die Sie manuell anlegen (HTTP-Node) | Die Ihres Tarifs: 16 im kostenlosen Tarif sowie in Starter und Professional; 32 in Scale; 100 in Developer |
- Was Kontingent verbraucht: jede Operation des Nodes Cord und jeder Aufruf über HTTP Request mit einem Schlüssel
sk_live_…sowie das Registrieren oder Löschen des Webhooks beim Aktivieren oder Deaktivieren eines Workflows mit Cord Trigger. Ereignisse zu empfangen verbraucht kein Kontingent, ebenso wenig ein Schlüsselsk_test_…. - Wie viel Sie verbraucht haben: unter Einstellungen › Tarif und Abonnement › Abonnement, Zeile API-Aufrufe.
Trennen
- Einen Workflow ausschalten: Wenn Sie einen Workflow mit Cord Trigger deaktivieren, löscht n8n den Webhook, den es in Cord registriert hatte. Existierte der Webhook in Cord nicht mehr, wird der Workflow in n8n trotzdem deaktiviert.
- Den Zugriff vollständig beenden:
- Öffnen Sie in Cord den Tab Schlüssel der Cord Workbench.
- Suchen Sie den Schlüssel, den Sie in n8n eingefügt haben, und klicken Sie auf Widerrufen. Bestätigen Sie: Der Schlüssel funktioniert sofort nicht mehr, und das lässt sich nicht rückgängig machen.
- Löschen Sie in n8n das Credential Cord API.
Nach dem Widerruf kann n8n die API mit diesem Schlüssel nicht mehr aufrufen, und die Webhooks, die mit diesem Schlüssel registriert wurden, empfangen keine Ereignisse mehr.
- Mit dem Node HTTP Request: Löschen Sie auch den Webhook im Tab Webhooks der Workbench.
Häufige Probleme
| Meldung oder Symptom | Was zu tun ist |
|---|---|
| Der Test des Credentials schlägt fehl | Fügen Sie einen geheimen Schlüssel ein (sk_live_ oder sk_test_). Veröffentlichbare Schlüssel (pk_) funktionieren hier nicht. Wurde der Schlüssel widerrufen, erstellen Sie einen neuen. |
| Der Workflow mit Cord Trigger lässt sich nicht aktivieren | Der Schlüssel braucht Schreibberechtigung, um den Webhook zu registrieren. Prüfen Sie außerdem, ob die Adresse von n8n öffentlich ist und https verwendet: Cord lehnt http, localhost und interne oder private Adressen ab. |
| „Ihre Integrationen haben bereits 100 Webhook-Abonnements angelegt, das Maximum pro Organisation.“ | Deaktivieren Sie n8n-Workflows, Zaps oder Szenarien, die Sie nicht mehr nutzen, um Platz zu schaffen. |
| n8n antwortet mit 401 auf die Zustellungen von Cord | Der Trigger lehnt Zustellungen ab, deren Signatur nicht zum Secret passt, das er beim Registrieren des Webhooks erhalten hat. Deaktivieren Sie den Workflow und aktivieren Sie ihn erneut, damit er einen neuen registriert. |
| Der Node Cord antwortet mit 429 | Sie haben das Limit pro Minute oder das monatliche API-Kontingent überschritten. Prüfen Sie Ihren Verbrauch; warten Sie im kostenlosen Tarif bis zum nächsten Monat oder wechseln Sie in einen höheren Tarif. |
| Sie können den Schlüssel nicht erstellen | Sie haben die maximale Zahl aktiver Schlüssel Ihres Tarifs erreicht. Widerrufen Sie einen, den Sie nicht mehr nutzen. |