10 takeaways from a startup roundtable

This morning I attended a roundtable with leaders from roughly 20 different early-stage startups. Accelerate Tectoria has been running for about nine months. It’s home to early-stage tech businesses and has a good cohort of entrepreneurs.

Here’s some of my take-aways from the event.

  • Show up. You can’t plan magic. Focus is critical. We have more tasks than time. But, it’s also important to set yourself up to be lucky. Make space for serendipity, not just your plan.
  • Reach out. Something that came up a few times was that companies are building into larger platforms but haven’t reached out to see if the platform can help them with beta-testers, promotions, etc. Take a chance and reach out. Share how you’re making someone else’s business more versatile and valuable.
  • Give. There are always opportunities to help others. Not only will giving increase the success in the overall community, but it will build your reputation. Be respectful. Be encouraging. Give.
  • Know when to sell. I’m guilty of this because I’m passionate about Kiind.  But, if I’m talking to someone who isn’t a prospective customer and I’m in sales-mode, then I’ll end up alienating them. Always Be Closing, but make sure you understand who you’re talking to so you don’t look like an ass.
  • Build your network. This is basic and crucial, but lots of people struggle with this. Success doesn’t happen in a vacuum.
  • Embrace reality. Invite others to provide you honest feedback and face your challenges head on. Winning, not comfort, is the goal. Extend others the same courtesy and kindly challenge them when needed. This is part of giving.
  • Important meetings are dodgeball games. Don’t enter the game without at least one partner. For all important meetings (big customers, integrators, and investors), take at least two people. The one who isn’t presenting will gather information and jump in to fills the gaps that inevitably get missed. Plus, it adds credibility.
  • The right partnerships are rocketfuel. Success occurs in an ecosystem, not a goldfish bowl. Aligned interests help you move and scale faster. Give some thought about who a great integration partner is for your business and go for it.
  • Go to market. It’s not think, guess, dream, or hope, it’s go (all those aforementioned actions are important too though). Things move fast. You must as well.
  • Design matters. World-class design is table stakes.

Victoria is a small city with an incredibly supportive community that is revamping the economy and pace of the city. Also, there are some damned hungry, young entrepreneurs in this city with big vision. Glad to be part of it.

Email open tracking – why and how to do it

Why track email opens?

Finding out whether or not an email has been read by your recipients is a great way to gather insight about your email offerings.  It can also provide indication (although see caveats section below) on whether or not your emails are reaching users’ inboxes or are getting caught in a spam filter, as very few people open emails in their spam folder.   At Kiind, email deliverability of gifts is core to our business, and open tracking is one of many statistics we collect and analyze to improve our product.  It is also a metric we plan to expose to our customers as part of their campaign metrics.

How to do it

Email open tracking is a simple concept and implementation:

  • Create a standard webapp driven URL in your product that accepts your tracking information via the URL or in parameters, but always return an image content type and corresponding binary image data (such as ‘image/gif’, and usually a 1×1 pixel transparent .gif).
  • Embed the URL as the src of an <img> tag in all outgoing emails you wish to track, adding appropriate information to the URL to identify the email and information you wish to track.  Because the returned content type is an image, it will render properly as an image.
  • Done!  Whenever an email is opened and that tiny invisible image is rendered, your URL will be called.  Capture and store the information to your database, etc.

Working example

All code samples are written in Groovy/Grails, but can easily be applied to any web framework / language.

Step 1 – create your controller.

It has two jobs:

  • accept tracking information and do something with it.  This example shows an image tracking controller that accepts a URL that looks like an image (http://yoursite.com/opens/somestat/TrackingInformation123.gif), rather than a standard dynamic page (http://yoursite.com/opens/somestat?track=TrackingInformation123).  The reason for doing it this way is to avoid it being identified as a web bug and stripped out by email clients and email scanning programs.
  • Return the actual binary data of the image and set the appropriate content type of the response.

In this example, we are tracking opens of gift emails.  To track additional emails, I would add additional methods (which in grails are exposed as URL paths).  This avoids a long single controller method with conditionals for different tracking types.

class OpenController {
    def openTrackingService

    def giftinstance() {
        String giftcode = params.id?.replaceAll('.gif', '')
        if (giftcode) {
            openTrackingService.trackGiftInstanceEmailOpen(giftcode)
        }
        sendTrackingImageToResponse()
    }

    //add additional tracking as needed.
    //def someOtherEmail() {}

    public void sendTrackingImageToResponse() {
        response.contentType = 'image/gif'
        response.outputStream << openTrackingService.get1pixelTrackingImageAsBytes()
        response.outputStream.flush()
    }
}

Here is the source for the service.  While very simple, resist the urge to put your database interaction into your controller.  Good encapsulation is fundamental to code health and maintainability.  Of note is the definition of the 1×1 pixel image data. Given that it is such a tiny amount of data, I chose to simply store the byte array from a 1×1 pixel transparent gif for performance and simplicity, rather than go and actually load the image data from a file/URL/Classpath every time I need it.

class OpenTrackingService {

    private final byte[] singlePixelTransparentShimBytes = [71, 73, 70, 56, 57, 97, 1, 0, 1, 0, -128, 0, 0, -1, -1, -1, 0, 0, 0, 33, -7, 4, 1, 0, 0, 0, 0, 44, 0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 2, 68, 1, 0, 59]

    public byte[] get1pixelTrackingImageAsBytes() {
        return singlePixelTransparentShimBytes
    }

    public void trackGiftInstanceEmailOpen(String giftCode) {
       //update your tracking database/datastore accordingly.
       GiftInstance giftInstance = giftCode ? GiftInstance.findByGiftcode(giftCode) : null;
       if (giftInstance) {
            giftInstance.lastOpened = new Date()
            giftInstance.save()
        }
    }

    //public void trackSomeOtheStuff(def data) {}
}

Step 2 – add your image tag to your emails

For any email you want to track, simply add an <img> tag to call your controller as part of the email source. Usually this is done as part of the footer.

<img src="http://yoursite.com/open/giftinstance/GIFTCODE123.gif" alt="">

This would result in the giftcode ‘GIFTCODE123′ being tracked every time the email is opened.

Notes and caveats:

  • Your email must be sent as HTML (not plaintext), even if it is otherwise text, otherwise the <img> tag will not function.
  • In order for open tracking to work, the recipient must render images in their email reader.  If your email is text heavy, it is possible it may be opened and read without the user ever choosing to ‘display images.’  This solution works best with media rich email, in which your recipient will almost definitely choose to display images if they wish to read it.
  • Many email readers cache images, so while you can rely on your URL being called for the first open, it should not be relied on to be called every subsequent time the person reads or displays the email.
  • If you use a third party mail provider / mailing list tool, it is likely they have something similar to this already built in.  Don’t roll your own if you can use something you already have available to you.

A quick word on click throughs

If your email is actionable, click throughs (the act of a user following a link from the email) are a great statistic to measure rather than, or in addition to, opens.   They work with plaintext emails and are easy to measure by adding a parameter to your destination in the links in the email (http://yoursite.com/destination?fromemail=emailidentifier)  or handling all your email links through a central tracking controller that does statistics recording and then sends the user to the real destination (http://yoursite.com/fromemail?emailid=something&destination=<the real destination path>).  The advantage of the latter approach is that you don’t need your tracking business logic scattered throughout your application if there are many destinations.

Click throughs are often considered a ‘better’ metric because they show actual engagement and aren’t skewed by potential technical or user behaviour limitations that prevent images in emails from being rendered.

 

Key Takeaways from Frank Marketing podcast featuring Kiind CEO

Frank Marketing published the a podcast interview they did with me a few weeks back.

Here are some of the key takeaway’s from the interview:

  • In a small startup, everyone has to be an owner. Being smart and talented isn’t enough. People involved in early stage companies have to own the vision of the business. Get good at figuring out what people want to focus on and assess if your business is going to meet their needs. A players become B players in the wrong environment, so make sure there is person-and-culture fit.
  • Ask you market. Listen to customers and let that help shape the product vision. This is a basic lean startup/customer discovery principle that we know to be wise.
  • Remove barriers to use. Our minimal-viable product (MVP) got in the way of the task it was supposed to make easier. We had a list of clever reasons as to why each obstacle existed. We quickly discover that we’d created a confusing customer experience. Even today, we identify a number of different places where our product is in the way of the action people wish to take. The best interface is no interface.

Ask Your Market from The LeanEntrepreneur.co