Интеграция Canny для сбора Feature Requests на сайте

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.

Разработка и обслуживание любых видов сайтов:

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

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Интеграция Canny для сбора Feature Requests на сайте
Простая
от 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

Интеграция Canny для сбора запросов на функции

Canny — платформа для сбора и приоритизации фичереквестов от пользователей. Встраивается в продукт через SDK, позволяет авторизованным пользователям создавать запросы, голосовать и подписываться на обновления.

SSO-интеграция с вашим продуктом

Canny поддерживает SSO через JWT, чтобы пользователи не создавали отдельный аккаунт:

// CannyTokenController
public function generate(): JsonResponse
{
    $user = auth()->user();

    $userData = [
        'avatarURL' => $user->avatar_url,
        'email'     => $user->email,
        'id'        => (string) $user->id,
        'name'      => $user->name,
        // Опционально: companies для B2B сегментации
        'companies' => [[
            'id'   => (string) $user->company_id,
            'name' => $user->company->name,
        ]],
    ];

    $token = \Firebase\JWT\JWT::encode(
        ['userData' => $userData],
        config('services.canny.private_key'),
        'HS256'
    );

    return response()->json(['token' => $token]);
}

Встраивание виджета

// В React-компоненте
useEffect(() => {
  // Загрузка Canny SDK
  (function(w, d, i, s) {
    // ... Canny SDK loader
  })(window, document, 'Canny', 'https://cdn.canny.io/sdk.js');

  const initCanny = async () => {
    const { token } = await fetch('/api/canny-token').then(r => r.json());

    window.Canny('identify', {
      appID: process.env.NEXT_PUBLIC_CANNY_APP_ID,
      user:  { ssoToken: token },
    });

    window.Canny('render', {
      boardToken: 'YOUR_BOARD_TOKEN',
      basePath:   '/feedback',
      ssoToken:   token,
    });
  };

  initCanny();
}, []);

Webhook для уведомлений

Canny отправляет вебхуки при изменении статуса запроса:

Route::post('/webhooks/canny', function (Request $request) {
    // Верификация подписи
    $signature = hash_hmac('sha256', $request->getContent(), config('services.canny.webhook_secret'));
    if (!hash_equals($signature, $request->header('Canny-Signature'))) abort(401);

    $event = $request->json('type');
    $post  = $request->json('object');

    if ($event === 'post.statusChanged' && $post['status'] === 'complete') {
        // Уведомляем всех проголосовавших по email
        // Canny делает это автоматически, но можно добавить собственную логику
        Log::info("Canny feature completed: {$post['title']}");
    }

    return response('ok');
});

Сроки

Интеграция Canny с SSO и вебхуками: 1–2 рабочих дня.