Added some API functionality
Hello,
Because the editor currently does not support templating and we had the need for some of our clients to have this functionality we integrated Sendy in our used CMS system by extending the API. Since I saw some people with the same problem I decided to share our solution here.
Our solution adds the following functionality to the Sendy API:
- Create a campaign for a given user (Brand)
- List all campaigns for a given user (Brand)
Installation instructions:
- Download the installation package here: http://bit.ly/Wwc79i
- Unpack the .zip in the following folder: /path_to_your_sendy_installation/api/ (The api folder should now have a subfolder called /campaigns)
- Read documentation which is included in the zip: SendyCampaignsAPI.pdf
This is not a complete and final solution. But for our clients this works great for now. They can create the newsletters in their usual CMS. Push to Sendy with the click of a button, and only need to assign a list and send it afterwards.
Below is the API documentation
Create campaign
This method allows you to create a campaign for a specific user (Brand).
URL
http://your_sendy_installation/api/campaigns/create-campaign.php
PARAMETERS (POST)api_key
your API key, available in Settings.user_name
login e-mail address of the brandsubject
campaign subjectfrom_name
name of the senderplain_text
content of the mail, in plain text. Optionalhtml_text
content of the mail, in HTML. Optional
RESPONSE (Plain text)
Success: true
Error: No data passed
Error: API key not passed
Error: Invalid API key
Error: Username not passed
Error: Invalid username
Error: No subject given
Error: No from name given
List campaigns
This method gets a list of campaigns for a specific user (Brand).
URL
http://your_sendy_installation/api/campaigns/list-campaigns.php
PARAMETERS (POST)api_key
your API key, available in Settings.user_name
login e-mail address of the brand
RESPONSE (Plain text)
Success: You’ll get a list of campaigns, comma seperated
Error: No data passed
Error: API key not passed
Error: Invalid API key
Error: Username not passed
Error: Invalid username
Download the installation package here: http://bit.ly/Wwc79i
Comments
Thanks a lot for your effort @jpvdpoel. I'll take a look at it soon.
One problem I encountered was that only 1 API key is currently available. I noticed the field exists for other users as well (Brands) but I was unable to generate a key unique for a Brand.
If that would be possible an extra security check can be made based on the "user_name"-"api_key" combination, making it more secure.
There seems to be a bug in the system in which the main account email, which is associated with the intallation, and a branch email are the same. The mysql query finds the first record which does not have an app and will return the error "Invalid username"
I have added a fix which checks to see if the "app is not null"
Another bug I have found is that when creating complex campaign html, there is a mysql error. I have added some code which is similar to how the save-campaign.php handles the inputs.
This seems to work.
This is the exact functionality for the API that we have been looking for!
jpvdpoel - thanks so much for sharing your solution. (I know this an old thread)
Ben - is it likely that the Create/List campaign methods will ever be implemented in an official sendy release? It would make Sendy a whole lot more useful for us if it did this out of the box!
Thanks
+1 Would be great to see this api functionality added to an official Sendy release.
Hello @jpvdpoel,
I saw this good post of yours and have one question:
https://sendy.co/forum/discussion/768/added-some-api-functionality/p1
I want to clarify if it does what I believe it does.
1) A visitor subscribes to a list #1.
2) Through the autoresponder campaign he gets an opportunity to get a freebie but he needs to subscribe again. He does that and he gets to list #2.
3) If the subscriber wants to unsubscribe to list #1, or list #2 or both he will have a option to see all list he subscribed to.
P.S. At the moment there is only unsubscribe from all list or one (must be configured at the admin level).
Is there an updated link as the one in the original post does not currently work. Thanks and regards.
Second @maiac's request: Is there an update on this? Thanks!