Jira Connector

Verbinde deine Jira-Cloud-Instanz über Tajo mit Brevo für kundenorientiertes Issue-Tracking, Sichtbarkeit von Support-Tickets und Projekt-Meilenstein-Benachrichtigungen.

Überblick

EigenschaftWert
PlattformJira Cloud
KategorieCustom
EinrichtungsaufwandMittel
Offizielle IntegrationNein
Synchronisierte DatenIssues, Projekte, Nutzer:innen, Events
API-TypREST API v3
AuthentifizierungOAuth 2.0 (3LO) / API-Token (Basic Auth)
Basis-URLhttps://your-domain.atlassian.net/rest/api/3/

Funktionen

  • Issue-Event-Synchronisierung - Leite Issue-Erstell-, Update- und Abschluss-Events in Brevo-Kontaktverläufe weiter
  • Customer-Ticket-Tracking - Verknüpfe Jira-Issues mit Brevo-Kontakten für Support-Sichtbarkeit
  • Projekt-Meilenstein-Alarme - Löse Brevo-Kampagnen bei Version-Releases und Sprint-Abschlüssen aus
  • Team-Kapazitätsdaten - Synchronisiere Auslastungsmetriken für operative Dashboards
  • Statuswechsel-Events - Verfolge Issue-Workflow-Übergänge als Brevo-Events
  • Kommentar-Synchronisierung - Leite kundenrelevante Kommentare in Brevo-Aktivitätsprotokolle weiter

Voraussetzungen

Bevor du beginnst, stelle sicher, dass du Folgendes hast:

  1. Eine Jira-Cloud-Instanz (Jira Software, Jira Service Management oder Jira Work Management)
  2. Admin-Zugriff zum Erstellen von OAuth-Apps oder Generieren von API-Tokens
  3. Die mit deinem API-Token verknüpfte Atlassian-Konto-E-Mail
  4. Ein Brevo-Konto mit API-Zugriff
  5. Ein Tajo-Konto mit aktivem Abonnement

Authentifizierung

Jira Cloud unterstützt mehrere Authentifizierungsmethoden.

Option 1: OAuth 2.0 (3LO) - Empfohlen

  1. Gehe zu developer.atlassian.com
  2. Klicke auf Create > OAuth 2.0 integration
  3. Konfiguriere die Callback-URL: https://app.tajo.io/callbacks/jira
  4. Füge diese Scopes hinzu:
read:jira-work
read:jira-user
write:jira-work
read:me

Die API-URL-Struktur für OAuth 2.0:

https://api.atlassian.com/ex/jira/{cloudId}/rest/api/3/{resource}

Option 2: API-Token (Basic Auth)

  1. Gehe zu id.atlassian.com/manage/api-tokens
  2. Klicke auf Create API token
  3. Benenne es mit “Tajo Integration”
Terminal window
# Basic Auth: email as username, API token as password
curl -X GET "https://your-domain.atlassian.net/rest/api/3/myself" \
-u "[email protected]:$JIRA_API_TOKEN" \
-H "Accept: application/json"

Einschränkungen von API-Tokens

API-Tokens sind an einzelne Nutzer:innen-Konten gebunden. Wird der/die Nutzer:in deaktiviert, bricht die Integration ab. Verwende OAuth 2.0 für Produktiv-Deployments.

Verbindung zu Tajo herstellen

Terminal window
# Using OAuth 2.0
tajo connectors install jira \
--client-id $JIRA_CLIENT_ID \
--client-secret $JIRA_CLIENT_SECRET \
--cloud-id $JIRA_CLOUD_ID
# Using API Token
tajo connectors install jira \
--site-url your-domain.atlassian.net \
--api-token $JIRA_API_TOKEN

Konfiguration

Grundeinrichtung

connectors:
jira:
enabled: true
site_url: "your-domain.atlassian.net"
auth_type: "oauth2" # or "basic"
sync:
issues: true
projects: true
users: true
comments: true
worklogs: false
projects:
- key: "SUPPORT"
sync_to_list: 22
- key: "PRODUCT"
sync_to_list: 23
issue_types:
- Bug
- Story
- Task
- Support Request

Feldzuordnung

Ordne Jira-Issue- und Nutzer:innen-Felder Brevo-Attributen zu:

field_mapping:
# User fields
accountId: JIRA_ACCOUNT_ID
emailAddress: email
displayName: FIRSTNAME
# Issue fields mapped to contact events
issue_key: LAST_TICKET_KEY
issue_status: LAST_TICKET_STATUS
issue_priority: LAST_TICKET_PRIORITY
issue_created: LAST_TICKET_DATE
resolution: LAST_TICKET_RESOLUTION

API-Endpunkte

Tajo integriert die folgenden Endpunkte der Jira Cloud REST API v3:

EndpunktMethodeZweck
/rest/api/3/searchPOSTIssues per JQL durchsuchen
/rest/api/3/issue/{issueIdOrKey}GETIssue-Details abrufen
/rest/api/3/issuePOSTIssue erstellen
/rest/api/3/projectGETAlle Projekte auflisten
/rest/api/3/project/{projectIdOrKey}GETProjektdetails abrufen
/rest/api/3/user/searchGETNutzer:innen suchen
/rest/api/3/myselfGETAktuelle:n Nutzer:in abrufen
/rest/api/3/issue/{issueIdOrKey}/commentGETIssue-Kommentare abrufen
/rest/api/3/webhookPOSTWebhooks registrieren
/rest/api/3/statusGETAlle Status abrufen
/rest/api/3/priorityGETAlle Prioritäten abrufen

Code-Beispiele

Connector initialisieren

import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({
apiKey: process.env.TAJO_API_KEY,
brevoApiKey: process.env.BREVO_API_KEY
});
await tajo.connectors.connect('jira', {
clientId: process.env.JIRA_CLIENT_ID,
clientSecret: process.env.JIRA_CLIENT_SECRET,
cloudId: process.env.JIRA_CLOUD_ID
});

Support-Issues synchronisieren

// Sync Jira support issues to Brevo contacts
await tajo.connectors.sync('jira', {
type: 'incremental',
resources: ['issues'],
jql: 'project = SUPPORT AND updated >= -24h',
batchSize: 50
});
const status = await tajo.connectors.status('jira');
console.log(status);
// {
// connected: true,
// lastSync: '2024-03-15T12:00:00Z',
// issuesTracked: 4560,
// projectsMonitored: 3,
// usersLinked: 890
// }

Jira-Webhooks verarbeiten

app.post('/webhooks/jira', async (req, res) => {
const event = req.body;
await tajo.connectors.handleWebhook('jira', {
event: event.webhookEvent,
payload: {
issueKey: event.issue?.key,
issueType: event.issue?.fields?.issuetype?.name,
status: event.issue?.fields?.status?.name,
reporter: event.issue?.fields?.reporter?.emailAddress,
assignee: event.issue?.fields?.assignee?.emailAddress
}
});
res.status(200).send('OK');
});

Issues nach Kund:innen durchsuchen

// Find all issues reported by a specific customer
const issues = await tajo.connectors.query('jira', {
jql: 'reporter = "[email protected]" ORDER BY created DESC',
maxResults: 20,
fields: ['summary', 'status', 'priority', 'created']
});

Ratenbegrenzungen

Jira Cloud erzwingt Ratenbegrenzungen, um die Plattformstabilität zu gewährleisten:

KontextRate-Limit
REST APIca. 100 Anfragen pro 10 Sekunden pro Nutzer:in
Gleichzeitige Anfragen10 gleichzeitige lang laufende Anfragen
Bulk-OperationenVariiert je nach Endpunkt

Paginierung

Jira nutzt offsetbasierte Paginierung mit den Parametern startAt und maxResults. Die Standard-Seitengröße beträgt 50, das Maximum 100. Tajo übernimmt die Paginierung automatisch.

Jira liefert eine 429 Too Many Requests-Antwort, wenn Ratenbegrenzungen überschritten werden, mit einem Retry-After-Header, der angibt, wann erneut versucht werden soll.

Fehlerbehebung

Häufige Probleme

ProblemUrsacheLösung
401 UnauthorizedUngültiges Token oder abgelaufener OAuthOAuth-Token erneuern oder API-Token neu generieren
403 ForbiddenUnzureichende BerechtigungenPrüfe, ob der/die Nutzer:in Zugriff auf das angefragte Projekt hat
JQL-FehlerUngültige AbfragesyntaxJQL zunächst in der Jira-Issue-Suche validieren
Webhook wird nicht empfangenFirewall blockiertSicherstellen, dass die Webhook-URL öffentlich erreichbar ist
Fehlende FelderFeld nicht in der AntwortFeld zum fields-Parameter hinzufügen oder expand verwenden

Debug-Modus

connectors:
jira:
debug: true
log_level: verbose
log_api_calls: true

Verbindung testen

Terminal window
tajo connectors test jira
# ✓ API authentication successful
# ✓ Project access verified
# ✓ Issue search operational
# ✓ User lookup available
# ✓ Webhook registration active

Best Practices

  1. OAuth 2.0 für die Produktion nutzen - Vermeidet Abhängigkeit von einzelnen Nutzer:innen-Konten
  2. Mit JQL filtern - Synchronisiere nur relevante Issues, um API-Aufrufe zu reduzieren
  3. Webhooks für Echtzeit nutzen - Vermeide Polling; registriere Webhooks für Issue-Änderungen
  4. ADF-Format beachten - Jira v3 nutzt das Atlassian Document Format für Rich-Text-Felder
  5. Projekt-zu-Liste zuordnen - Lege separate Brevo-Listen pro Jira-Projekt an
  6. Paginierung handhaben - Iteriere immer durch alle Seiten, um vollständige Daten zu erhalten

Sicherheit

  • OAuth 2.0 (3LO) - Sichere tokenbasierte Authentifizierung mit Refresh-Tokens
  • API-Token + Basic Auth - Base64-kodierte Zugangsdaten über HTTPS
  • Nur HTTPS - Die gesamte API-Kommunikation ist per TLS 1.2+ verschlüsselt
  • Scope-basierter Zugriff - OAuth-Scopes beschränken den API-Zugriff auf erforderliche Ressourcen
  • Atlassian-Cloud-Sicherheit - SOC-2-Type-II-zertifizierte Infrastruktur
  • Verschlüsselte Speicherung - Zugangsdaten werden in Tajo verschlüsselt gespeichert

Verwandte Ressourcen

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
AI-Assistent

Hallo! Fragen Sie mich alles über die Dokumentation.