Develop a client python program to pull records from Insightly's REST API
services and push emails out using mail merge.
Configuration input parameters, resource file:
1. Insightly (CRM) API Key (string)
2. Outgoing SMTP server
3. server username / password authentication
4. From field: sender email address for all outgoing mail
5. Organization: company name field for outgoing mail
6. Filename of template html email file with keywords for mail-merge
7. Compound filter & selection logic rule to select subset of contacts
8. Burst size - number of emails to send in each burst
9. Burst pause period - time delay before starting next burst
10. Test mode flag: if true, just send a single test email
11. Test email address to send test messages.
Environment:
Language: Python 2.7 64-bit under Windows 7 64-bit
Use JSON Python v2.1 REST API Client, https (SSL) access to Insightly
Reference Documentation and Library code:
[login to view URL] - documentation for REST API
[login to view URL] - use [login to view URL] library
Insightly development account:
sign up for free account, stick in some test records [login to view URL]
Functional Requirements:
Insightly may contact 50k or 100k contacts. We wish to cycle through these
and make a filtered list based on pattern matching and exclusions.
The pattern matching should be based on the value of country, tags, custom fields, email patterns, etc.
Once the subset list is established by filtering, a template html formatted
message should be sent out. Keyword substitution of template html
should be supported, such as the person's first name.
The html page title should be used for the outgoing email subject line.
Email delivery should be sent in drip feed mode, i.e. bursts of 100, with a 5 minute pause between bursts.
Progress reporting to console, current, total, percent complete.
Error reporting to console, with meaningful messages.