Інтеграція Productboard для пріоритизації фіч на сайті

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Інтеграція Productboard для пріоритизації фіч на сайті
Проста
від 1 робочого дня до 3 робочих днів
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Інтеграція Productboard для пріоритизації функцій

Productboard — інструмент управління продуктом: збір інсайтів з різних джерел, пріоритизація за допомогою фреймворків оцінювання (RICE, Value/Effort), побудова дорожної карти та надання публічних порталів для користувачів.

Вбудовування портала клієнта

Productboard надає публічний портал з голосуванням за функції. Він може бути вбудований через iframe або користувальницький домен:

<!-- Портал через iframe -->
<iframe
  src="https://portal.productboard.com/YOUR_TOKEN"
  frameborder="0"
  width="100%"
  height="800px">
</iframe>

Для SSO-ідентифікації користувачів використовуйте користувальницьку кнопку з JWT:

// ProductboardTokenController
public function token(): JsonResponse
{
    $user = auth()->user();

    $payload = [
        'iss'   => config('services.productboard.api_key'),
        'iat'   => time(),
        'exp'   => time() + 3600,
        'email' => $user->email,
        'name'  => $user->name,
    ];

    $token = \Firebase\JWT\JWT::encode($payload, config('services.productboard.secret'), 'HS256');

    return response()->json([
        'token'      => $token,
        'portal_url' => 'https://portal.productboard.com/YOUR_TOKEN?jwt=' . $token,
    ]);
}

REST API: Створення нотатки (інсайту)

class ProductboardService
{
    private const BASE = 'https://api.productboard.com';

    public function createNote(string $content, string $userEmail, array $tags = []): array
    {
        return Http::withToken(config('services.productboard.token'))
            ->withHeaders(['X-Version' => '1'])
            ->post(self::BASE . '/notes', [
                'title'   => substr($content, 0, 100),
                'content' => $content,
                'user'    => ['email' => $userEmail],
                'tags'    => array_map(fn($t) => ['name' => $t], $tags),
                'source'  => ['origin' => 'website_feedback'],
            ])
            ->json();
    }
}

// Автоматично створюємо нотатку при отриманні зворотного зв'язку
public function handleFeedback(FeedbackSubmitted $event): void
{
    $tags = [];
    if ($event->score <= 3) $tags[] = 'low-satisfaction';
    if (str_contains(strtolower($event->comment), 'повільн')) $tags[] = 'performance';

    app(ProductboardService::class)->createNote(
        $event->comment,
        $event->user->email,
        $tags
    );
}

Webhook для оновлення дорожної карти

Route::post('/webhooks/productboard', function (Request $request) {
    // Перевірка підпису
    $computed = hash_hmac('sha256', $request->getContent(), config('services.productboard.webhook_secret'));
    if (!hash_equals($computed, $request->header('X-Productboard-Signature'))) abort(401);

    $data = $request->json();

    if ($data['data']['type'] === 'feature.status.updated') {
        $feature = $data['data']['feature'];
        // Оновлюємо публічну дорожну карту на сайті
        Cache::forget('public_roadmap');
        Log::info("Функція оновлена: {$feature['name']} → {$feature['status']}");
    }

    return response('ok');
});

Терміни

Вбудовування портала клієнта, REST API для інсайтів нотаток та синхронізація webhook: 2 робочих дні.