Jira-connector

Verbind je Jira Cloud-instantie met Brevo voor klantgerichte issue-tracking, zichtbaarheid van supporttickets en notificaties over projectmijlpalen via Tajo.

Overzicht

EigenschapWaarde
PlatformJira Cloud
CategorieCustom
SetupcomplexiteitGemiddeld
Officiële integratieNee
Gesynchroniseerde dataIssues, Projecten, Gebruikers, Events
API-typeREST API v3
AuthenticatieOAuth 2.0 (3LO) / API Token (Basic Auth)
Base URLhttps://your-domain.atlassian.net/rest/api/3/

Functies

  • Issue-event-sync - Stuur events voor issue creation, updates en resolves door naar Brevo-contacttimelines
  • Klantticket-tracking - Koppel Jira-issues aan Brevo-contacten voor supportzichtbaarheid
  • Projectmijlpaal-alerts - Trigger Brevo-campagnes bij versiereleases en sprintafrondingen
  • Teamcapaciteitsdata - Synchroniseer workloadmetrics voor operationele dashboards
  • Statuswijziging-events - Track issue-workflowovergangen als Brevo-events
  • Commentsynchronisatie - Stuur klantgerichte comments door naar Brevo-activiteitslogs

Vereisten

Voordat je begint, zorg dat je beschikt over:

  1. Een Jira Cloud-instantie (Jira Software, Jira Service Management of Jira Work Management)
  2. Admin-toegang om OAuth-apps aan te maken of API-tokens te genereren
  3. Het Atlassian-accountemailadres dat is gekoppeld aan je API-token
  4. Een Brevo-account met API-toegang
  5. Een Tajo-account met een actief abonnement

Authenticatie

Jira Cloud ondersteunt meerdere authenticatiemethoden.

Optie 1: OAuth 2.0 (3LO) - aanbevolen

  1. Ga naar developer.atlassian.com
  2. Klik op Create > OAuth 2.0 integration
  3. Configureer de callback-URL: https://app.tajo.io/callbacks/jira
  4. Voeg deze scopes toe:
read:jira-work
read:jira-user
write:jira-work
read:me

De API-URL-structuur voor OAuth 2.0:

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

Optie 2: API Token (Basic Auth)

  1. Ga naar id.atlassian.com/manage/api-tokens
  2. Klik op Create API token
  3. Noem het “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"

API-tokenbeperkingen

API-tokens zijn gekoppeld aan individuele gebruikersaccounts. Als de gebruiker wordt gedeactiveerd, breekt de integratie. Gebruik OAuth 2.0 voor productiedeployments.

Verbinden met Tajo

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

Configuratie

Basisinstelling

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

Veldmapping

Map Jira-issue- en gebruikersvelden naar Brevo-attributen:

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-endpoints

Tajo integreert met de volgende Jira Cloud REST API v3-endpoints:

EndpointMethodDoel
/rest/api/3/searchPOSTZoek issues met JQL
/rest/api/3/issue/{issueIdOrKey}GETHaal issuedetails op
/rest/api/3/issuePOSTMaak een issue aan
/rest/api/3/projectGETLijst alle projecten
/rest/api/3/project/{projectIdOrKey}GETHaal projectdetails op
/rest/api/3/user/searchGETZoek gebruikers
/rest/api/3/myselfGETHaal huidige gebruiker op
/rest/api/3/issue/{issueIdOrKey}/commentGETHaal issue-comments op
/rest/api/3/webhookPOSTRegistreer webhooks
/rest/api/3/statusGETHaal alle statussen op
/rest/api/3/priorityGETHaal alle prioriteiten op

Codevoorbeelden

Connector initialiseren

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 synchroniseren

// 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 afhandelen

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 zoeken per klant

// 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']
});

Rate limits

Jira Cloud hanteert rate limits om platformstabiliteit te waarborgen:

ContextRate limit
REST API~100 requests per 10 seconden per gebruiker
Gelijktijdige requests10 gelijktijdige long-running requests
BulkoperatiesVarieert per endpoint

Paginering

Jira gebruikt offset-gebaseerde paginering met de parameters startAt en maxResults. De default pagegrootte is 50, maximum is 100. Tajo handelt paginering automatisch af.

Jira retourneert een 429 Too Many Requests-response wanneer rate limits worden overschreden, met een Retry-After-header die aangeeft wanneer je opnieuw mag proberen.

Probleemoplossing

Veelvoorkomende problemen

ProbleemOorzaakOplossing
401 UnauthorizedOngeldig token of verlopen OAuthVervers OAuth-token of regenereer API-token
403 ForbiddenOnvoldoende rechtenControleer of de gebruiker toegang heeft tot het project
JQL-foutenOngeldige querysyntaxValideer JQL eerst in de issue-zoekopdracht van Jira
Webhook niet ontvangenFirewall blokkeertZorg dat de webhook-URL publiek bereikbaar is
Ontbrekende veldenVeld niet in responseVoeg veld toe aan de fields-parameter of gebruik expand

Debugmodus

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

Verbinding 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. Gebruik OAuth 2.0 voor productie - Vermijdt afhankelijkheid van individuele gebruikersaccounts
  2. Filter met JQL - Synchroniseer alleen relevante issues om API-calls te beperken
  3. Gebruik webhooks voor realtime - Vermijd polling; registreer webhooks voor issuewijzigingen
  4. Respecteer ADF-format - Jira v3 gebruikt Atlassian Document Format voor rich text-velden
  5. Map project-naar-lijst - Maak aparte Brevo-lijsten per Jira-project
  6. Handel paginering af - Doorloop altijd alle pagina’s voor volledige data

Beveiliging

  • OAuth 2.0 (3LO) - Veilige token-gebaseerde authenticatie met refresh tokens
  • API Token + Basic Auth - Base64-gecodeerde credentials over HTTPS
  • Alleen HTTPS - Alle API-communicatie is versleuteld via TLS 1.2+
  • Scoped Access - OAuth-scopes beperken API-toegang tot benodigde resources
  • Atlassian Cloud Security - SOC 2 Type II-gecertificeerde infrastructuur
  • Encrypted storage - Credentials versleuteld opgeslagen bij Tajo

Gerelateerde bronnen

Subscribe to updates

developer-docs

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

auto-detect
AI-assistent

Hallo! Stel me vragen over de documentatie.