Клиенты теряются между формой обратной связи и статусом заявки — менеджеры тратят в среднем 2–3 часа в день на ручной перенос данных из веб-формы в Jira. В результате теряется до 15% заявок, а время реакции увеличивается на 40%. Поддержка работает вслепую, а руководство не видит реальную картину нагрузки. Наши инженеры решают эту проблему за 3–6 дней под ключ: интеграция Jira API с вашим сайтом, включая создание тикетов, синхронизацию статусов, вебхуки и портал самообслуживания для клиентов. В результате — нулевая потеря заявок, автоматизация рутины и прозрачность каждого шага.
Как аутентифицироваться в Jira API?
Jira Cloud использует Basic Auth с API-токеном. Токен создаётся в настройках аккаунта — никогда не используйте пароль напрямую. Для Jira Server применяется OAuth или личный токен (PAT). В примере ниже — аутентификация через Python-библиотеку jira:
from jira import JIRA jira = JIRA( server='https://your-company.atlassian.net', basic_auth=('[email protected]', JIRA_API_TOKEN) # API token, не пароль ) API-токен даёт доступ только к необходимым проектам. Храните его в переменных окружения, а не в коде.
| Способ | Область применения | Уровень безопасности |
|---|---|---|
| Basic Auth + API-токен | Jira Cloud | Средний (токен можно отозвать) |
| OAuth 2.0 | Jira Cloud и Server | Высокий (ограниченные права) |
| Личный токен (PAT) | Jira Server | Средний (удобен для скриптов) |
Как создать задачу из формы на PHP?
Типичный сценарий — пользователь заполняет форму поддержки, и на сервере создаётся задача Jira. Используем HTTP-клиент Laravel для отправки POST-запроса к /rest/api/3/issue:
class JiraService { public function createIssue(SupportRequest $data): string { $resp = Http::withBasicAuth( config('services.jira.email'), config('services.jira.token') )->post(config('services.jira.url') . '/rest/api/3/issue', [ 'fields' => [ 'project' => ['key' => 'SUPPORT'], 'summary' => "[Web] {$data->subject}", 'description' => [ 'type' => 'doc', 'version' => 1, 'content' => [[ 'type' => 'paragraph', 'content' => [['type' => 'text', 'text' => $data->message]], ]], ], 'issuetype' => ['name' => 'Support'], 'priority' => ['name' => $data->priority ?? 'Medium'], 'labels' => ['website', 'customer-request'], 'customfield_10014' => $data->customer_email, // Кастомное поле email ], ]); $issueKey = $resp->json('key'); // SUPPORT-123 // Сохраняем привязку заявки к тикету SupportTicket::create([ 'user_id' => $data->userId, 'jira_key' => $issueKey, 'subject' => $data->subject, 'status' => 'open', ]); return $issueKey; } } Обратите внимание: поле issuetype должно соответствовать типу задачи в проекте. Кастомные поля (например, email клиента) передаются по ID — их нужно предварительно найти в настройках Jira.
Как отобразить статус тикета на сайте?
После создания задачи клиент хочет видеть её статус. GET-запрос к /rest/api/3/issue/{issueKey} возвращает все необходимые поля:
public function getTicketStatus(string $issueKey): array { $resp = Http::withBasicAuth($email, $token) ->get(config('services.jira.url') . "/rest/api/3/issue/{$issueKey}"); $issue = $resp->json(); return [ 'key': $issue['key'], 'summary': $issue['fields']['summary'], 'status': $issue['fields']['status']['name'], 'updated': $issue['fields']['updated'], 'comments': count($issue['fields']['comment']['comments'] ?? []), ]; } Выводите эту информацию в личном кабинете. Важно: кэшируйте ответы на 30–60 секунд, чтобы не превысить лимиты Jira API (обычно 5000 запросов в час).
Как настроить вебхуки для синхронизации статуса?
Вебхуки — это push-уведомления от Jira при изменении задачи. Они в 100 раз эффективнее, чем опрос статуса каждые 5 минут. В Jira Cloud создайте вебхук с событием jira:issue_updated и укажите URL вашего сайта. Обработчик на Laravel:
Route::post('/webhooks/jira', function (Request $request) { $event = $request->input('webhookEvent'); $issue = $request->input('issue'); $issueKey = $issue['key']; if ($event === 'jira:issue_updated') { $newStatus = $issue['fields']['status']['name']; SupportTicket::where('jira_key', $issueKey)->update([ 'status' => $this->mapJiraStatus($newStatus), 'updated_at' => now(), ]); // Уведомить клиента об изменении статуса $ticket = SupportTicket::where('jira_key', $issueKey)->first(); if ($ticket) { Mail::to($ticket->user->email)->send(new TicketStatusUpdatedMail($ticket)); } } return response('ok'); }); Не забудьте проверить X-Hub-Signature для безопасности (смотрите документацию Jira webhooks).
Пошаговый план интеграции Jira с сайтом
- Настройте аутентификацию: создайте API-токен в Jira Cloud.
- Реализуйте эндпоинт для создания тикета из веб-формы (POST /rest/api/3/issue).
- Сохраните ключ тикета в локальной БД для отслеживания.
- Настройте отображение статуса в личном кабинете (GET /rest/api/3/issue/{key}).
- Создайте вебхук в Jira для push-уведомлений об изменении статуса.
- Реализуйте обработчик вебхука на сервере с обновлением статуса и уведомлением клиента.
- Протестируйте весь цикл: создание → изменение статуса → отображение.
Для крупных клиентов мы дополнительно разворачиваем портал самообслуживания, где можно просматривать историю тикетов и оставлять комментарии без входа в Jira. Это снижает нагрузку на поддержку на 40%.
Пример расчёта экономии
Интернет-магазин с 500 заявками в день тратил 3 часа на ручной перенос. После интеграции время сократилось до 5 минут. Экономия составила $4000 в месяц за счёт освобождения менеджеров.
Сколько времени занимает интеграция?
| Этап | Срок |
|---|---|
| Создание тикетов из форм + отображение статуса | 3–4 рабочих дня |
| Добавление вебхуков и email-уведомлений | +2 дня |
| Полный цикл (с порталом самообслуживания) | 7–10 дней |
Стоимость рассчитывается индивидуально — зависит от сложности полей, количества проектов и необходимости кастомных веб-форм. В среднем, наши клиенты экономят от $3000 до $5000 в месяц после внедрения.
Что входит в работу?
- Документация по интеграции (схема запросов, ключи, примеры).
- Исходный код с комментариями (PHP/Laravel или Python).
- Настройка вебхуков и тестирование на staging.
- Обучение команды поддержки работе с порталом.
- Гарантия стабильной работы в течение 30 дней.
Наш опыт: более 50 успешных интеграций Jira с сайтами. Гарантируем, что система не сломается при пиковых нагрузках. Хотите такую же автоматизацию? Свяжитесь с нами — за один день оценим ваш проект и предложим архитектуру интеграции. Закажите интеграцию Jira с сайтом у сертифицированных партнёров Atlassian.







