Jira Connector

Forbind din Jira Cloud-instans med Brevo for kundevendt issue-sporing, synlighed af supporttickets og notifikationer om projektmilepæle gennem Tajo.

Oversigt

EgenskabVærdi
PlatformJira Cloud
KategoriBrugerdefineret
OpsætningskompleksitetModerat
Officiel integrationNej
Synkroniserede dataIssues, projekter, brugere, hændelser
API-typeREST API v3
AutentifikationOAuth 2.0 (3LO) / API-token (Basic Auth)
Base-URLhttps://your-domain.atlassian.net/rest/api/3/

Funktioner

  • Synkronisering af issue-hændelser - Videresend issue-oprettelses-, opdaterings- og løsningshændelser til Brevo-kontakttidslinjer
  • Sporing af kundetickets - Forbind Jira-issues med Brevo-kontakter for support-synlighed
  • Alarmer ved projektmilepæle - Udløs Brevo-kampagner ved versionsudgivelser og sprint-afslutninger
  • Team-kapacitetsdata - Synkronisér arbejdsbelastningsmetrikker til driftsdashboards
  • Statusændringshændelser - Spor issue-workflow-overgange som Brevo-hændelser
  • Kommentar-synkronisering - Videresend kundevendte kommentarer til Brevo-aktivitetslogs

Forudsætninger

Før du begynder, skal du sikre dig, at du har:

  1. En Jira Cloud-instans (Jira Software, Jira Service Management eller Jira Work Management)
  2. Admin-adgang til at oprette OAuth-apps eller generere API-tokens
  3. Atlassian-konto-e-mailen knyttet til dit API-token
  4. En Brevo-konto med API-adgang
  5. En Tajo-konto med aktivt abonnement

Autentifikation

Jira Cloud understøtter flere autentifikationsmetoder.

Mulighed 1: OAuth 2.0 (3LO) - anbefalet

  1. Gå til developer.atlassian.com
  2. Klik på Create > OAuth 2.0 integration
  3. Konfigurér callback-URL: https://app.tajo.io/callbacks/jira
  4. Tilføj disse scopes:
read:jira-work
read:jira-user
write:jira-work
read:me

API-URL-strukturen for OAuth 2.0:

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

Mulighed 2: API-token (Basic Auth)

  1. Gå til id.atlassian.com/manage/api-tokens
  2. Klik på Create API token
  3. Navngiv det “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"

Begrænsninger for API-tokens

API-tokens er knyttet til individuelle brugerkonti. Hvis brugeren deaktiveres, går integrationen i stykker. Brug OAuth 2.0 til produktionsudrulninger.

Forbind til 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

Konfiguration

Grundlæggende opsætning

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

Feltmapping

Kortlæg Jira-issue- og brugerfelter til Brevo-attributter:

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 integrerer med følgende Jira Cloud REST API v3-endpoints:

EndpointMetodeFormål
/rest/api/3/searchPOSTSøg i issues med JQL
/rest/api/3/issue/{issueIdOrKey}GETHent issue-detaljer
/rest/api/3/issuePOSTOpret et issue
/rest/api/3/projectGETVis alle projekter
/rest/api/3/project/{projectIdOrKey}GETHent projektdetaljer
/rest/api/3/user/searchGETSøg brugere
/rest/api/3/myselfGETHent aktuel bruger
/rest/api/3/issue/{issueIdOrKey}/commentGETHent issue-kommentarer
/rest/api/3/webhookPOSTRegistrér webhooks
/rest/api/3/statusGETHent alle statusser
/rest/api/3/priorityGETHent alle prioriteter

Kodeeksempler

Initialisér connector

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
});

Synkronisér support-issues

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

Håndtér Jira-webhooks

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

Søg issues efter kunde

// 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 håndhæver rate limits for at sikre platformens stabilitet:

KontekstRate limit
REST API~100 anmodninger pr. 10 sekunder pr. bruger
Samtidige anmodninger10 samtidige langtkørende anmodninger
Bulk-operationerVarierer efter endpoint

Paginering

Jira bruger offset-baseret paginering med parametrene startAt og maxResults. Standardsidestørrelsen er 50, maksimalt 100. Tajo håndterer paginering automatisk.

Jira returnerer et 429 Too Many Requests-svar, når rate limits overskrides, med en Retry-After-header, der angiver, hvornår der skal forsøges igen.

Fejlfinding

Almindelige problemer

ProblemÅrsagLøsning
401 UnauthorizedUgyldigt token eller udløbet OAuthOpdatér OAuth-token eller regenerér API-token
403 ForbiddenUtilstrækkelige tilladelserTjek, om brugeren har adgang til det ønskede projekt
JQL-fejlUgyldig forespørgselssyntaksValidér JQL først i Jiras issue-søgning
Webhook ikke modtagetFirewall blokererSørg for, at webhook-URL er offentligt tilgængelig
Manglende felterFelt ikke i svarTilføj felt til fields-parameter, eller brug expand

Debug-tilstand

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

Testforbindelse

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

Bedste praksis

  1. Brug OAuth 2.0 til produktion - Undgår afhængighed af individuelle brugerkonti
  2. Filtrér med JQL - Synkronisér kun relevante issues for at reducere API-kald
  3. Brug webhooks til realtid - Undgå polling; registrér webhooks til issue-ændringer
  4. Respektér ADF-format - Jira v3 bruger Atlassian Document Format til rig tekst-felter
  5. Kortlæg projekt-til-liste - Opret separate Brevo-lister pr. Jira-projekt
  6. Håndtér paginering - Itérér altid gennem alle sider for komplette data

Sikkerhed

  • OAuth 2.0 (3LO) - Sikker token-baseret autentifikation med refresh-tokens
  • API-token + Basic Auth - Base64-kodede legitimationsoplysninger over HTTPS
  • Kun HTTPS - Al API-kommunikation krypteres via TLS 1.2+
  • Scopes adgang - OAuth-scopes begrænser API-adgang til nødvendige ressourcer
  • Atlassian Cloud-sikkerhed - SOC 2 Type II-certificeret infrastruktur
  • Krypteret opbevaring - Legitimationsoplysninger krypteres i hvile i Tajo

Relaterede ressourcer

Subscribe to updates

developer-docs

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

auto-detect
AI-assistent

Hej! Spørg mig om dokumentationen.