academia | advice | alcohol | American Indians | architecture | art | artificial intelligence | Barnard | best | biography | bitcoin | blogging | broken umbrellas | candide | censorship | children's books | Columbia | comics | consciousness | cooking | crime | criticism | dance | data analysis | design | dishonesty | economics | education | energy | epistemology | error correction | essays | family | fashion | finance | food | foreign policy | futurism | games | gender | Georgia | health | history | inspiration | intellectual property | Israel | journalism | Judaism | labor | language | law | leadership | letters | literature | management | marketing | memoir | movies | music | mystery | mythology | New Mexico | New York | parenting | philosophy | photography | podcast | poetry | politics | prediction | product | productivity | programming | psychology | public transportation | publishing | puzzles | race | reading | recommendation | religion | reputation | review | RSI | Russia | sci-fi | science | sex | short stories | social justice | social media | sports | startups | statistics | teaching | technology | Texas | theater | translation | travel | trivia | tv | typography | unreliable narrators | video | video games | violence | war | weather | wordplay | writing

Wednesday, January 10, 2018

The communications tool I wish existed

I've daydreamed for a while about building a Swiss Army Knife messaging-management software-as-a-service.

Basically, I've been paid to develop messaging-manager software by several clients, and approached by other clients who I didn't have time to work for. They're using Sheets, Excel, Google Contacts or Salesforce, and that's all fine for storing lists of contacts, but they want to be able to track who got which email or SMS message when, how they responded, etc.

I've heard "Why can't I email all my active clients and tell them about the new website? I have them right here in Salesforce!" And, "Why can't I text all the seniors who haven't turned in their graduation requirements that they're due in 3 weeks? I have the list right here in Google Sheets!"

I'm not really sure what v1.0 would make sense for this, but I've had multiple clients swear to me that they would use it even if they had to import their contacts every single time they wanted to send a message. (It feels like I'm taking crazy pills when I hear this--surely it exists? But it doesn't, as far as I can tell... and I've tried a bunch of Mailchimp-family SaaS's to try to help them find one that works.)

What I've tried so far:

  • Salesforce: AFAIK, has no built-in ability to systematically contact the contacts; expect a GUI nightmare, or a lot of coding from scratch, if you wish to take actions like adding a field using the output of a query
  • Mailchimp: when I asked them how to maintain the information I'm gathering about communications with my Mailchimp contacts, they suggested regularly exporting them to a spreadsheet, updating columns, and re-importing the list.
  • Sendgrid: works well for what it is, which is very limited. Also, they confirmed to me that they discard your entire history each week, and won't stop doing this at any price
  • Mixmax: I'm a paying user and their customer support is great, but I find the Gmail integration janky, contact syncing inconsistent, and the various campaign configurations impenetrably confusing
My feature wishlist:
  1. Gmail: I can still use gmail as my primary email client
  2. Google Contacts: it syncs with my google contacts
  3. Google Sheets: I can point it to a google spreadsheet and it can figure out how each row connects to a contact (eg, by email, or name, or whatever)
  4. Static fields: I can add arbitrary fields to contacts, like “customer lifetime value” or “has been sent invite” and it’ll remember the values for each contact forever
  5. Tags, not lists: Instead of each list/group maintaining its own info about a given contact (as Malchimp does), the assumption is that a given contact belongs to many groups/lists/tags. Google contact groups are just treated like tags; google spreadsheet columns can also be tags, and I can create custom tags.
  6. Static tag info: each tag has its own properties, including associated “why you got this” text
  7. Exploding addressee lists: I can compose an email to thousands of people and it’ll make each one appear to have received a personal email from me, without anyone else included
  8. Safe templates: my email can use a template like "Hey there ,", and it will either let me define what to show if there is no firstname, or flag all that don’t have an obviously good entry for each field used (so there’s no awkward “Dear Mr. ,” blanks)
  9. Exploding phone number lists: I can compose a text and it’ll send to 1 number for each person
  10. Detect bounces: it’ll detect bounces from email, SMS and mark those addresses/numbers to not be used (and tell the difference between "address not found" and "mailbox full")
  11. Detect dupes: it’ll detect duplicate addresses, so that each person only gets one email total (using Google Contacts lists in Gmail violates this, I believe)
  12. Why you got this (email): it adds “why you got this” text to bottom of email
  13. Unsubscribe (email): it adds unsubscribe text and link to bottom of email
  14. Why you got this (SMS): it adds “why you got this” text to bottom of initial SMS
  15. Unsubscribe (SMS): it adds unsubscribe text and link to initial SMS
  16. Read receipts: it has email read receipts to show me if someone read it
  17. Templates depend on medium: I can make distinct email text and sms text for the same message
  18. Failover to SMS: I can send a message once without specifying email or SMS, and it can send SMS if email is not available or bounces
  19. Salesforce: it can sync with salesforce
  20. Live Salesforce queries: tags can have associated salesforce queries that pull in a set of contacts live
  21. Process responses: I can include questions in the message, and it can store responses
  22. Response parsing: message responses are automatically processed when relevant, like “Hell no” = no, “6 out of 10? maybe 7?” = 7, “*** 1/2” = 7, etc.
  23. Saved searches: search results can be stored as a column: eg search result list for “have received 0-2 emails from me” becomes: new member == 1
  24. Live saved searches: search results can be stored as a live/self-updating column (updates after every message send or data change)
  25. Responses are a column: message responses become a column that can be used in logic, like “all people who haven’t responded or responded ambiguously or responded with a no"
  26. History lives forever: I can look up the history of communications with any recipient, I don't need to worry about storing it myself
  27. Set math: I can get a set of all contacts in various combinations of groups/tags, using logic like or, and, in B but not A, etc.

Labels: ,