nigel / freescout-webhook-parser
A PHP library for parsing FreeScout webhook data with HTML cleaning capabilities
Installs: 8
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/nigel/freescout-webhook-parser
Requires
- php: ^8.0
 - ext-json: *
 
Requires (Dev)
- phpunit/phpunit: ^9.0
 
README
A PHP library for parsing FreeScout webhook data with HTML cleaning capabilities.
Features
- Parse FreeScout webhook data
 - Clean HTML content using HtmlCleaner
 - Support for both basic and extended data fields
 - Easy to use interface
 - Type-safe data access
 
Installation
composer require nigel/freescout-webhook-parser
Usage
Basic Usage
use Nigel\FreescoutWebhookParser\FreeScoutWebhookParser; // Get webhook data $rawData = file_get_contents('php://input'); // Create parser instance $parser = new FreeScoutWebhookParser($rawData); // Parse the data $result = $parser->parse(); // Get basic fields $basicFields = $result->getBasicFields(); // Get all fields $allFields = $result->getAllFields();
Basic Fields
The getBasicFields() method returns the most commonly used fields:
[
    'subject' => string,
    'body' => string,
    'from' => string,
    'to' => string,
    'date' => string,
    'type' => string,
    'status' => string,
    'customer' => [
        'name' => string,
        'email' => string
    ],
    'conversation_id' => string,
    'thread_id' => string
]
All Fields
The getAllFields() method returns all available fields:
[
    'subject' => string,
    'body' => string,
    'from' => string,
    'to' => string,
    'cc' => string,
    'bcc' => string,
    'date' => string,
    'message_id' => string,
    'in_reply_to' => string,
    'references' => string,
    'attachments' => array,
    'headers' => array,
    'custom_fields' => array,
    'conversation_id' => string,
    'thread_id' => string,
    'type' => string,
    'status' => string,
    'customer' => [
        'id' => string,
        'name' => string,
        'email' => string
    ],
    'mailbox' => [
        'id' => string,
        'name' => string
    ],
    'user' => [
        'id' => string,
        'name' => string,
        'email' => string
    ],
    'dates' => [
        'created_at' => string,
        'updated_at' => string,
        'deleted_at' => string
    ],
    'tags' => array,
    'custom_data' => array,
    'meta' => array
]
Requirements
- PHP 8.0 or higher
 - Composer
 
License
This project is licensed under the MIT License - see the LICENSE file for details.