Інтеграція UserVoice для збору зворотного зв'язку на сайті

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

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

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

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

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Інтеграція UserVoice для збору зворотного зв'язку на сайті
Проста
від 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

Інтеграція UserVoice для збору зворотного зв'язку

UserVoice — платформа для збору запитів функцій та зворотного зв'язку з підтримкою SSO, користувацьких полів та інтеграцією з Jira/Salesforce. Розроблена для B2B SaaS з ролями адміністраторів продукту.

Вбудовування віджета

<!-- Базова інтеграція через Gadget (бічний віджет) -->
<script>
  UserVoice = window.UserVoice || [];
  (function(){
    var uv = document.createElement('script');
    uv.type = 'text/javascript';
    uv.async = true;
    uv.src = '//widget.uservoice.com/YOUR_KEY.js';
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(uv, s);
  })();

  UserVoice.push(['identify', {
    email:       currentUser.email,
    name:        currentUser.name,
    id:          currentUser.id,
    account: {
      id:   currentUser.accountId,
      name: currentUser.accountName,
    }
  }]);

  UserVoice.push(['addTrigger', '#feedback-button', {
    mode:  'satisfaction',
    forum_id: 12345,
  }]);
</script>

REST API для керування ідеями

class UserVoiceService
{
    private string $baseUrl;
    private string $token;

    public function __construct()
    {
        $this->baseUrl = 'https://' . config('services.uservoice.subdomain') . '.uservoice.com/api/v2';
        $this->token   = config('services.uservoice.token');
    }

    public function getSuggestions(string $forumId, array $params = []): array
    {
        $response = Http::withToken($this->token)
            ->get("{$this->baseUrl}/forums/{$forumId}/suggestions", array_merge([
                'sort'     => 'votes',
                'per_page' => 25,
                'filter'   => 'public',
            ], $params));

        return $response->json('suggestions', []);
    }

    public function createSuggestion(string $forumId, string $title, string $body, int $userId): array
    {
        return Http::withToken($this->token)
            ->post("{$this->baseUrl}/forums/{$forumId}/suggestions", [
                'suggestion' => [
                    'title' => $title,
                    'body'  => $body,
                ],
                'user_id' => $userId,
            ])->json('suggestion');
    }
}

Синхронізація з Jira

UserVoice підтримує нативну інтеграцію з Jira (у платних тарифах). Ідеї з певним статусом автоматично створюють завдання в Jira, а зміна статусу завдання оновлює статус ідеї в UserVoice.

Для користувацької синхронізації використовуйте webhook від UserVoice та Jira REST API:

Route::post('/webhooks/uservoice', function (Request $request) {
    if ($request->json('event') === 'suggestion.status_changed') {
        $suggestion = $request->json('suggestion');

        if ($suggestion['status']['key'] === 'planned') {
            // Створюємо завдання в Jira
            Http::withBasicAuth(config('jira.user'), config('jira.token'))
                ->post(config('jira.url') . '/rest/api/3/issue', [
                    'fields' => [
                        'project'     => ['key' => 'PROD'],
                        'summary'     => $suggestion['title'],
                        'description' => ['type' => 'doc', 'version' => 1,
                            'content' => [['type' => 'paragraph',
                                'content' => [['type' => 'text', 'text' => $suggestion['body']]]]]],
                        'issuetype'   => ['name' => 'Story'],
                    ],
                ]);
        }
    }
    return response('ok');
});

Терміни

Інтеграція UserVoice з SSO та синхронізацією статусів: 2–3 робочих дні.