hocza/sendy

Sendy API implementation for Laravel

1.1.1 2024-01-15 06:03 UTC

This package is auto-updated.

Last update: 2024-04-15 09:51:27 UTC


README

Sendy

Sendy Laravel

A service provider for Sendy API in Laravel 5

68747470733a2f2f636f6465636c696d6174652e636f6d2f6769746875622f686f637a612f73656e64792d6c61726176656c2f6261646765732f6770612e737667 Latest Stable Version Total Downloads Latest Unstable Version License

Installation

composer require hocza/sendy:1.*

or append your composer.json with:

{
    "require" : {
        "hocza/sendy": "1.*"
    }
}

Add the following settings to the config/app.php

Service provider:

'providers' => [
    // ...
    'Hocza\Sendy\SendyServiceProvider',
]

For the Sendy:: facade

'aliases' => [
    // ...
    'Sendy' => 'Hocza\Sendy\Facades\Sendy',
]

Configuration

php artisan vendor:publish --provider="Hocza\Sendy\SendyServiceProvider"

It will create sendy.php within the config directory.

<?php

return [

    'listId' => '',
    'installationUrl' => '',
    'apiKey' => '',

];

Usage

Subscribe:

$data = [
    'email' => 'johndoe@example.com',
    'name' => 'John Doe',
    'any_custom_column' => 'value',
];

Sendy::subscribe($data);

RESPONSE (array)

In case of success:

['status' => true, 'message' => 'Subscribed']
['status' => true, 'message' => 'Already subscribed']

In case of error:

['status' => false, 'message' => 'The error message']

Unsubscribe:

$email = 'johndoe@example.com';
Sendy::unsubscribe($email);

RESPONSE (array)

In case of success:

['status' => true, 'message' => 'Unsubscribed']

In case of error:

['status' => false, 'message' => 'The error message']

Subscription status

$email = 'johndoe@example.com';
Sendy::status($email);

RESPONSE (Plain text)

Success:

  • Subscribed
  • Unsubscribed
  • Unconfirmed
  • Bounced
  • Soft bounced
  • Complained

Error:

  • No data passed
  • API key not passed
  • Invalid API key
  • Email not passed
  • List ID not passed
  • Email does not exist in list

Active subscriber count

Sendy::count();
#To check other list:
Sendy::setListId($list_id)->count();

RESPONSE (Plain text)

Success:

  • You'll get an integer of the active subscriber count

Error:

  • No data passed
  • API key not passed
  • Invalid API key
  • List ID not passed
  • List does not exist

Create campaign

<?php

$campaignOptions = [
    'from_name' => 'My Name',
    'from_email' => 'test@mail.com',
    'reply_to' => 'test@mail.com',
    'title' => 'My Campaign',
    'subject' => 'My Subject',
    'list_ids' => '1,2,3', // comma-separated, optional
    'brand_id' => 1,
    'query_string' => 'utm_source=sendy&utm_medium=email&utm_content=email%20newsletter&utm_campaign=email%20newsletter',
];
$campaignContent = [
    'plain_text' => 'My Campaign',
    'html_text' => View::make('mail.my-campaign'),
];
$send = false;

Sendy::createCampaign($campaignOptions, $campaignContent, $send);

RESPONSE (Plain text)

Success:

  • Campaign created
  • Campaign created and now sending

Error:

  • No data passed
  • API key not passed
  • Invalid API key
  • From name not passed
  • From email not passed
  • Reply to email not passed
  • Subject not passed
  • HTML not passed
  • List ID(s) not passed
  • One or more list IDs are invalid
  • List IDs does not belong to a single brand
  • Brand ID not passed
  • Unable to create campaign
  • Unable to create and send campaign

Change list ID

To change the default list ID simply prepend with setListId($list_id)
Examples:

Sendy::setListId($list_id)->subscribe($data);
Sendy::setListId($list_id)->unsubscribe($email);
Sendy::setListId($list_id)->status($email);
Sendy::setListId($list_id)->count();

Todo

  • Implementing the rest of the API. :)
  • better documentation - in progress as you can see :)

Buy me a coffee :)

Click here to lend your support to: Sendy-laravel and make a donation at pledgie.com !