PHPackages                             keithbrink/helpscout-app-spark - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. keithbrink/helpscout-app-spark

ActiveLibrary[API Development](/categories/api)

keithbrink/helpscout-app-spark
==============================

A Helpscout integration package for Laravel Spark that allows you to add information about tickets created by customers in Helpscout.

0.0.9(6y ago)00MITPHP

Since Jun 17Pushed 6y agoCompare

[ Source](https://github.com/keithbrink/helpscout-app-spark)[ Packagist](https://packagist.org/packages/keithbrink/helpscout-app-spark)[ RSS](/packages/keithbrink-helpscout-app-spark/feed)WikiDiscussions master Synced 2w ago

READMEChangelog (9)Dependencies (2)Versions (10)Used By (0)

HelpscoutSpark
==============

[](#helpscoutspark)

An Helpscout integration package for [Laravel Spark](https://spark.laravel.com/) that allows you to add information about tickets created by customers in Helpscout.

It includes two separate functions:

1. It adds an endpoint for a [Helpscout Dynamic App](https://developer.helpscout.com/custom-apps/dynamic/) to display information about the user's billing plan and historical data.
2. It accepts webhooks from Helpscout and processes them based on rules that you set up. By default, it will tag each new ticket with the user's current billing plan.

Installation
------------

[](#installation)

This version requires [PHP](https://php.net) 7, and supports Laravel 5.5+ and Spark 5+.

To get the latest version, simply require the project using [Composer](https://getcomposer.org):

```
$ composer require keithbrink/helpscout-app-spark

```

Configuration - Custom App
--------------------------

[](#configuration---custom-app)

Create a custom app in Helpscout, and point the callback URL to your app URL + the following endpoint:

`/helpscout-spark-app/custom-app`

Add the secret key for the custom app in your .env file:

`HS_SPARK_CUSTOM_APP_SECRET=xxxxxx`

Configuration - Webhook Rules
-----------------------------

[](#configuration---webhook-rules)

Create a new app in Helpscout (under My Apps), and add the following keys in your .env file:

```
HS_AUTH_TYPE=client_credentials
HS_APP_ID=xxx
HS_APP_SECRET=xxx

```

Then, create a new webhook for the endpoint:

`/helpscout-spark-app/webhooks`

and add your secret key in your .env file:

```
HS_SPARK_WEBHOOK_SECRET=xxx

```

Usage
-----

[](#usage)

Out of the box, you will have a custom app with the user's current billing plan and other customer data on each ticket, and the webhook will add a tag for the user's current billing plan to each ticket that is created.

It is simple to add your own information to either the custom app or new rules to handle Helpscout webhooks.

Add Custom App Items
--------------------

[](#add-custom-app-items)

To add more items to the custom app, simply copy the `KeithBrink/HelpscoutSpark/CustomAppData/Items/Plan`, including extending the `BaseItem` and implementing the `ItemContract`.

Change the `getValue` and `getName` function to whatever you like.

Then, add your rule in your `AppServiceProvider` register function:

```
\KeithBrink\HelpscoutSpark\CustomAppData\Items::$items[] = YourItem::class;

```

Add Webhook Rule
----------------

[](#add-webhook-rule)

To add another webhook rule, simply copy the `KeithBrink/HelpscoutSpark/WebhookRules/Rules/TagConversationWithPlan`, including extending the BaseRule and implementing the RuleContract.

The `parseWebhook` function accepts the webhook, here you should set any properties that you will need from the webhook.

Then, handle the webhook, including interacting with the Helpscout API if necessary, in the `handle` function.

Then, add your rule in your `AppServiceProvider` register function:

```
\KeithBrink\HelpscoutSpark\WebhookRules\Rules::$rules[] = YourRule::class;

```

License
-------

[](#license)

HelpscoutSpark is licensed under [The MIT License (MIT)](LICENSE).

###  Health Score

23

—

LowBetter than 25% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity56

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~34 days

Recently: every ~68 days

Total

9

Last Release

2341d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/15267205?v=4)[Keith Brink](/maintainers/KeithBrink)[@keithbrink](https://github.com/keithbrink)

---

Top Contributors

[![keithbrink](https://avatars.githubusercontent.com/u/15267205?v=4)](https://github.com/keithbrink "keithbrink (9 commits)")

### Embed Badge

![Health badge](/badges/keithbrink-helpscout-app-spark/health.svg)

```
[![Health](https://phpackages.com/badges/keithbrink-helpscout-app-spark/health.svg)](https://phpackages.com/packages/keithbrink-helpscout-app-spark)
```

###  Alternatives

[exsyst/swagger

A php library to manipulate Swagger specifications

35816.5M7](/packages/exsyst-swagger)[lucasdotvin/laravel-soulbscription

A straightforward interface to handle subscriptions and features consumption.

709209.3k](/packages/lucasdotvin-laravel-soulbscription)[pimax/fb-messenger-php

Facebook Messenger Bot PHP API

313188.5k2](/packages/pimax-fb-messenger-php)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
