---
title: "Jira-koppling"
description: "Komplett integrationsguide för Jira Cloud för att synkronisera ärenden, projekt och teamaktivitetsdata med Brevo via Tajo."
url: https://tajo.io/se/docs/connectors/custom/jira/
markdown: https://tajo.io/se/docs/connectors/custom/jira.md
lang: sv-SE
robots: noindex
---

Ansök om tidig åtkomst

Ange ditt förnamn och din e-postadress på jobbet. Vi skickar en länk för att bekräfta din begäran om åtkomst till Tajo.

# Jira-koppling

Kopplingens status: Planerad Inte byggd än. Tajo kör inte den här kopplingen i dag.

| Källfält | Målfält | Exempelvärde |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Anslut din Jira Cloud-instans till Brevo för kundnära ärendespårning, supportbiljettöversikt och aviseringar om projektmilstolpar via Tajo.

## Översikt

| Egenskap | Värde |
| --- | --- |
| **Plattform** | Jira Cloud |
| **Kategori** | Anpassad |
| **Installationskomplexitet** | Måttlig |
| **Officiell integration** | Nej |
| **Data som synkas** | Ärenden, projekt, användare, händelser |
| **API-typ** | REST API v3 |
| **Autentisering** | OAuth 2.0 (3LO) / API-token (Basic Auth) |
| **Bas-URL** | `https://your-domain.atlassian.net/rest/api/3/` |

## Funktioner

- **Synk av ärendehändelser** - Vidarebefordra händelser för skapande, uppdatering och lösning av ärenden till tidslinjer för Brevo-kontakter
- **Spårning av kundbiljetter** - Länka Jira-ärenden till Brevo-kontakter för supportöversikt
- **Aviseringar om projektmilstolpar** - Utlös Brevo-kampanjer vid versionsreleaser och sprintavslut
- **Data om teamkapacitet** - Synka arbetsbelastningsmått till operativa dashboards
- **Statusförändringshändelser** - Spåra ärendeflödets övergångar som Brevo-händelser
- **Kommentarsynk** - Vidarebefordra kundnära kommentarer till Brevos aktivitetsloggar

## Förutsättningar

Innan du börjar, se till att du har:

1. En Jira Cloud-instans (Jira Software, Jira Service Management eller Jira Work Management)
2. Admin-åtkomst för att skapa OAuth-appar eller generera API-tokens
3. Den Atlassian-kontoe-post som är kopplad till din API-token
4. Ett Brevo-konto med API-åtkomst
5. Ett Tajo-konto med aktivt abonnemang

## Autentisering

Jira Cloud stöder flera autentiseringsmetoder.

### Alternativ 1: OAuth 2.0 (3LO) – rekommenderas

1. Gå till [developer.atlassian.com](https://developer.atlassian.com/console/myapps/)
2. Klicka på **Create** > **OAuth 2.0 integration**
3. Konfigurera callback-URL: `https://app.tajo.io/callbacks/jira`
4. Lägg till dessa scopes:

```
read:jira-work
read:jira-user
write:jira-work
read:me
```

API-URL-strukturen för OAuth 2.0:

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

### Alternativ 2: API-token (Basic Auth)

1. Gå till [id.atlassian.com/manage/api-tokens](https://id.atlassian.com/manage/api-tokens)
2. Klicka på **Create API token**
3. Namnge den “Tajo Integration”

```bash
# Basic Auth: email as username, API token as password
curl -X GET "https://your-domain.atlassian.net/rest/api/3/myself" \
  -u "email@example.com:$JIRA_API_TOKEN" \
  -H "Accept: application/json"
```

Begränsningar för API-tokens

API-tokens är kopplade till enskilda användarkonton. Om användaren avaktiveras slutar integrationen att fungera. Använd OAuth 2.0 för produktionsmiljöer.

### Ansluta till Tajo

```bash
# 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 \
  --email admin@example.com \
  --api-token $JIRA_API_TOKEN
```

## Konfiguration

### Grundinställning

```yaml
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
```

### Fältmappning

Mappa Jira-ärende- och användarfält till Brevo-attribut:

```yaml
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 integrerar med följande endpoints i Jira Cloud REST API v3:

| Endpoint | Metod | Syfte |
| --- | --- | --- |
| `/rest/api/3/search` | POST | Sök ärenden med JQL |
| `/rest/api/3/issue/{issueIdOrKey}` | GET | Hämta ärendedetaljer |
| `/rest/api/3/issue` | POST | Skapa ett ärende |
| `/rest/api/3/project` | GET | Lista alla projekt |
| `/rest/api/3/project/{projectIdOrKey}` | GET | Hämta projektdetaljer |
| `/rest/api/3/user/search` | GET | Sök användare |
| `/rest/api/3/myself` | GET | Hämta aktuell användare |
| `/rest/api/3/issue/{issueIdOrKey}/comment` | GET | Hämta ärendekommentarer |
| `/rest/api/3/webhook` | POST | Registrera webhooks |
| `/rest/api/3/status` | GET | Hämta alla statusar |
| `/rest/api/3/priority` | GET | Hämta alla prioriteter |

## Kodexempel

### Initiera kopplingen

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

### Synka supportärenden

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

### Hantera Jira-webhooks

```javascript
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ök ärenden per kund

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

## Hastighetsbegränsningar

Jira Cloud tillämpar hastighetsbegränsningar för att säkerställa plattformsstabilitet:

| Kontext | Hastighetsbegränsning |
| --- | --- |
| **REST API** | ~100 förfrågningar per 10 sekunder per användare |
| **Samtidiga förfrågningar** | 10 samtidiga långvariga förfrågningar |
| **Bulkoperationer** | Varierar per endpoint |

Paginering

Jira använder offsetbaserad paginering med parametrarna `startAt` och `maxResults`. Standardsidstorleken är 50, max är 100. Tajo hanterar paginering automatiskt.

Jira returnerar ett `429 Too Many Requests`-svar när hastighetsbegränsningar överskrids, med en `Retry-After`-header som anger när det är dags att försöka igen.

## Felsökning

### Vanliga problem

| Problem | Orsak | Lösning |
| --- | --- | --- |
| 401 Unauthorized | Ogiltig token eller utgången OAuth | Uppdatera OAuth-token eller regenerera API-token |
| 403 Forbidden | Otillräckliga behörigheter | Kontrollera att användaren har åtkomst till aktuellt projekt |
| JQL-fel | Ogiltig frågesyntax | Validera JQL i Jiras ärendesök först |
| Webhook tas inte emot | Brandvägg blockerar | Se till att webhook-URL:en är offentligt tillgänglig |
| Saknade fält | Fält saknas i svar | Lägg till fältet i `fields`-parametern eller använd `expand` |

### Felsökningsläge

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

### Testa anslutning

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

## Bästa praxis

1. **Använd OAuth 2.0 i produktion** - Undviker beroende av enskilda användarkonton
2. **Filtrera med JQL** - Synka bara relevanta ärenden för att minska API-anrop
3. **Använd webhooks för realtid** - Undvik polling; registrera webhooks för ärendeändringar
4. **Respektera ADF-format** - Jira v3 använder Atlassian Document Format för rik text
5. **Mappa projekt-till-lista** - Skapa separata Brevo-listor per Jira-projekt
6. **Hantera paginering** - Iterera alltid genom alla sidor för fullständig data

## Säkerhet

- **OAuth 2.0 (3LO)** - Säker tokenbaserad autentisering med refresh-tokens
- **API-token + Basic Auth** - Base64-kodade uppgifter över HTTPS
- **Endast HTTPS** - All API-kommunikation krypterad via TLS 1.2+
- **Scopad åtkomst** - OAuth-scopes begränsar API-åtkomst till nödvändiga resurser
- **Atlassian Cloud-säkerhet** - SOC 2 Type II-certifierad infrastruktur
- **Krypterad lagring** - Uppgifter krypterade i vila i Tajo

## Relaterade resurser

- [GitHub-koppling](https://tajo.io/se/docs/connectors/custom/github)
- [Linear-koppling](https://tajo.io/se/docs/connectors/custom/linear)
- [Gorgias-koppling](https://tajo.io/se/docs/connectors/support/gorgias)
- [Brevo Contacts API](https://tajo.io/se/docs/contact-management)
