Клиенты теряются между формой обратной связи и статусом заявки — менеджеры тратят в среднем 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.







