---
title: "Jira Connector"
description: "คู่มือการผสานรวม Jira Cloud ฉบับสมบูรณ์สำหรับการซิงค์ปัญหา โปรเจกต์ และข้อมูลกิจกรรมทีมกับ Brevo ผ่าน Tajo"
url: https://tajo.io/th/docs/connectors/custom/jira/
markdown: https://tajo.io/th/docs/connectors/custom/jira.md
lang: th-TH
robots: noindex
---

ขอสิทธิ์ใช้งานล่วงหน้า

กรอกชื่อและที่อยู่อีเมลที่ทำงานของคุณ เราจะส่งลิงก์เพื่อยืนยันคำขอเข้าใช้งาน Tajo ทางอีเมล

# Jira Connector

สถานะตัวเชื่อม: วางแผนไว้ ยังไม่ได้สร้าง ปัจจุบัน Tajo ยังไม่ได้ใช้งานตัวเชื่อมนี้

| ฟิลด์ต้นทาง | ฟิลด์ปลายทาง | ค่าตัวอย่าง |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

เชื่อมต่อ Jira Cloud instance กับ Brevo สำหรับการติดตามปัญหาที่หันหน้าสู่ลูกค้า การมองเห็นตั๋วสนับสนุน และการแจ้งเตือนเหตุการณ์สำคัญของโปรเจกต์ผ่าน Tajo

## ภาพรวม

| คุณสมบัติ | ค่า |
| --- | --- |
| **แพลตฟอร์ม** | Jira Cloud |
| **หมวดหมู่** | แบบกำหนดเอง |
| **ความซับซ้อนในการตั้งค่า** | ปานกลาง |
| **การผสานรวมอย่างเป็นทางการ** | ไม่ |
| **ข้อมูลที่ซิงค์** | ปัญหา โปรเจกต์ ผู้ใช้ เหตุการณ์ |
| **ประเภท API** | REST API v3 |
| **การยืนยันตัวตน** | OAuth 2.0 (3LO) / API Token (Basic Auth) |
| **Base URL** | `https://your-domain.atlassian.net/rest/api/3/` |

## ฟีเจอร์

- **การซิงค์เหตุการณ์ปัญหา** - ส่งต่อเหตุการณ์สร้าง อัปเดต และแก้ไขปัญหาไปยังไทม์ไลน์ผู้ติดต่อ Brevo
- **การติดตามตั๋วลูกค้า** - เชื่อมโยงปัญหา Jira กับผู้ติดต่อ Brevo สำหรับการมองเห็นการสนับสนุน
- **การแจ้งเตือนเหตุการณ์สำคัญโปรเจกต์** - ทริกเกอร์แคมเปญ Brevo เมื่อ version releases และ sprint completions
- **ข้อมูลความสามารถทีม** - ซิงค์ตัวชี้วัดปริมาณงานสำหรับ dashboards ปฏิบัติการ
- **เหตุการณ์การเปลี่ยนสถานะ** - ติดตามการเปลี่ยนผ่านเวิร์กโฟลว์ปัญหาเป็นเหตุการณ์ Brevo
- **การซิงค์ความคิดเห็น** - ส่งต่อความคิดเห็นที่หันหน้าสู่ลูกค้าไปยัง activity logs ของ Brevo

## ข้อกำหนดเบื้องต้น

ก่อนเริ่มต้น ตรวจสอบให้แน่ใจว่าคุณมี:

1. Jira Cloud instance (Jira Software, Jira Service Management หรือ Jira Work Management)
2. สิทธิ์ผู้ดูแลระบบในการสร้าง OAuth apps หรือสร้าง API tokens
3. อีเมลบัญชี Atlassian ที่เกี่ยวข้องกับ API token ของคุณ
4. บัญชี Brevo ที่มีสิทธิ์เข้าถึง API
5. บัญชี Tajo ที่มีการสมัครสมาชิกที่ใช้งานอยู่

## การยืนยันตัวตน

Jira Cloud รองรับวิธีการยืนยันตัวตนหลายแบบ

### ตัวเลือกที่ 1: OAuth 2.0 (3LO) - แนะนำ

1. ไปที่ [developer.atlassian.com](https://developer.atlassian.com/console/myapps/)
2. คลิก **Create** > **OAuth 2.0 integration**
3. กำหนดค่า callback URL: `https://app.tajo.io/callbacks/jira`
4. เพิ่ม scopes เหล่านี้:

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

โครงสร้าง API URL สำหรับ OAuth 2.0:

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

### ตัวเลือกที่ 2: API Token (Basic Auth)

1. ไปที่ [id.atlassian.com/manage/api-tokens](https://id.atlassian.com/manage/api-tokens)
2. คลิก **Create API token**
3. ตั้งชื่อว่า “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"
```

ข้อจำกัด API Token

API tokens ผูกกับบัญชีผู้ใช้แต่ละราย หากผู้ใช้ถูกปิดใช้งาน การผสานรวมจะเสีย ใช้ OAuth 2.0 สำหรับการใช้งานจริง

### เชื่อมต่อกับ 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
```

## การกำหนดค่า

### การตั้งค่าพื้นฐาน

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

### การแมปฟิลด์

แมปฟิลด์ปัญหาและผู้ใช้ Jira กับแอตทริบิวต์ Brevo:

```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 ผสานรวมกับ Jira Cloud REST API v3 endpoints ต่อไปนี้:

| Endpoint | เมธอด | จุดประสงค์ |
| --- | --- | --- |
| `/rest/api/3/search` | POST | ค้นหาปัญหาโดยใช้ JQL |
| `/rest/api/3/issue/{issueIdOrKey}` | GET | ดูรายละเอียดปัญหา |
| `/rest/api/3/issue` | POST | สร้างปัญหา |
| `/rest/api/3/project` | GET | แสดงรายการโปรเจกต์ทั้งหมด |
| `/rest/api/3/project/{projectIdOrKey}` | GET | ดูรายละเอียดโปรเจกต์ |
| `/rest/api/3/user/search` | GET | ค้นหาผู้ใช้ |
| `/rest/api/3/myself` | GET | ดูผู้ใช้ปัจจุบัน |
| `/rest/api/3/issue/{issueIdOrKey}/comment` | GET | ดูความคิดเห็นปัญหา |
| `/rest/api/3/webhook` | POST | ลงทะเบียน webhooks |
| `/rest/api/3/status` | GET | ดูสถานะทั้งหมด |
| `/rest/api/3/priority` | GET | ดูลำดับความสำคัญทั้งหมด |

## ตัวอย่างโค้ด

### เริ่มต้น Connector

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

### ซิงค์ปัญหาการสนับสนุน

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

### จัดการ 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');
});
```

### ค้นหาปัญหาตามลูกค้า

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

## ขีดจำกัดอัตรา

Jira Cloud ใช้ขีดจำกัดอัตราเพื่อรับประกันความเสถียรของแพลตฟอร์ม:

| บริบท | ขีดจำกัดอัตรา |
| --- | --- |
| **REST API** | ~100 คำขอต่อ 10 วินาทีต่อผู้ใช้ |
| **คำขอพร้อมกัน** | 10 คำขอที่ทำงานนานพร้อมกัน |
| **การดำเนินการแบบ Bulk** | แตกต่างกันตาม endpoint |

Pagination

Jira ใช้ offset-based pagination พร้อมพารามิเตอร์ `startAt` และ `maxResults` ขนาดหน้าเริ่มต้นคือ 50 สูงสุด 100 Tajo จัดการ pagination โดยอัตโนมัติ

Jira ส่งคืนการตอบสนอง `429 Too Many Requests` เมื่อเกินขีดจำกัดอัตรา พร้อม header `Retry-After` ที่บอกเวลาที่ควรลองอีกครั้ง

## การแก้ไขปัญหา

### ปัญหาทั่วไป

| ปัญหา | สาเหตุ | วิธีแก้ |
| --- | --- | --- |
| 401 Unauthorized | Token ไม่ถูกต้องหรือ OAuth หมดอายุ | รีเฟรช OAuth token หรือสร้าง API token ใหม่ |
| 403 Forbidden | สิทธิ์ไม่เพียงพอ | ตรวจสอบผู้ใช้มีสิทธิ์เข้าถึงโปรเจกต์ที่ขอ |
| ข้อผิดพลาด JQL | ไวยากรณ์ query ไม่ถูกต้อง | ตรวจสอบ JQL ใน issue search ของ Jira ก่อน |
| ไม่ได้รับ Webhook | ไฟร์วอลล์บล็อก | ตรวจสอบให้แน่ใจว่า URL webhook เข้าถึงได้สาธารณะ |
| ฟิลด์หายไป | ฟิลด์ไม่อยู่ในการตอบสนอง | เพิ่มฟิลด์ในพารามิเตอร์ `fields` หรือใช้ `expand` |

### โหมด Debug

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

### ทดสอบการเชื่อมต่อ

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

## แนวทางปฏิบัติที่ดีที่สุด

1. **ใช้ OAuth 2.0 สำหรับการผลิต** - หลีกเลี่ยงการพึ่งพาบัญชีผู้ใช้แต่ละราย
2. **กรองด้วย JQL** - ซิงค์เฉพาะปัญหาที่เกี่ยวข้องเพื่อลดการเรียก API
3. **ใช้ webhooks สำหรับแบบเรียลไทม์** - หลีกเลี่ยงการ polling ลงทะเบียน webhooks สำหรับการเปลี่ยนแปลงปัญหา
4. **เคารพรูปแบบ ADF** - Jira v3 ใช้ Atlassian Document Format สำหรับฟิลด์ rich text
5. **แมปโปรเจกต์กับรายการ** - สร้างรายการ Brevo แยกต่างหากต่อโปรเจกต์ Jira
6. **จัดการ pagination** - วนซ้ำผ่านทุกหน้าเสมอสำหรับข้อมูลที่สมบูรณ์

## ความปลอดภัย

- **OAuth 2.0 (3LO)** - การยืนยันตัวตนตาม token ที่ปลอดภัยพร้อม refresh tokens
- **API Token + Basic Auth** - ข้อมูลรับรอง Base64-encoded ผ่าน HTTPS
- **HTTPS เท่านั้น** - การสื่อสาร API ทั้งหมดเข้ารหัสผ่าน TLS 1.2+
- **การเข้าถึงแบบกำหนดขอบเขต** - OAuth scopes จำกัดการเข้าถึง API กับทรัพยากรที่จำเป็น
- **Atlassian Cloud Security** - โครงสร้างพื้นฐานที่ได้รับการรับรอง SOC 2 Type II
- **การจัดเก็บที่เข้ารหัส** - ข้อมูลรับรองเข้ารหัสที่เก็บใน Tajo

## แหล่งข้อมูลที่เกี่ยวข้อง

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