Type: New Feature
Affects Version/s: 1.7
Fix Version/s: 1.7
From a comment by Dave Neary:
First, the operations I'm interested in, in the context of integration into an email client (Thunderbird) are:
- Integration with e-mail:
- Check whether a full-name/email address is already part of the database
- If not, add an email contact to the database (either from my address book or from a view of the email headers)
- Integrate with address book:
- Add a CiviCRM address book to my contacts
- Search the address book
- Integration with calendaring and actions:
- Add emails as notes/emails/meeting minutes to CRM
- Set up meetings in CRM from the calendar
In fact, the type of integration I'm looking for is similar to that mentioned in Integration+with+Microsoft+Outlook (but even if I could just add contacts to the CRM from my mail, and have them available in my address book, that would be superb).
Second: CiviCRM's SOAP interface needs a WSDL description to be useful in languages other than PHP - even in PHP I've seen issues where the client or server don't deformat the SOAP envelope into PHP objects correctly. Associative arrays are perhaps the worst possible way to pass information over the wire. The ideal would be to define an interface which uses only primitive types (numbers and strings).
The API functions that need exposing are:
- civicrm_get_contact (to search for a contact by full name/email address)
- civicrm_add_contact (to add a contact with just the quick-add from an email)
- Load a predefined mapping from CiviCRM contacts to mailbook contacts - from the address book, you would want all of the secondary information (addresses, IM nicks, comments, phone numbers) to get uploaded too - for this you'll need a field mapping. Could have a pre-defined name based on the client. Would be useful in any case for address-book importation from various clients.
- civicrm_add_contact from the address book
- Tagging - get a list of defined tags, and set a subset of them for a contact
The rest can follow on later (scheduling meetings, adding emails to database, etc).