Email marketing is a way to target your customers with periodic messages based on information they want to receive. I can be a very effective marketing tactic, but you have to be sure you’re following CAN-SPAM laws and getting the most out of every email.
Below are elements every email marketing message should have.
Accurate Header Information
The “to” and “from” fields in the header of your email must have accurate information about the recipient and sender and cannot include misleading information. For example, the email can’t say it’s from Bill Gates when it’s really from your organization.
Take time to write a subject that both previews what’s in the email message and gets recipients’ attention. If your subject line is weak, users are less likely to open your message. However, your subject line can’t be deceptive—it has to be representative of what’s in the email. Avoid gimmicky subjects like, “Win a Free iPad,” or “Best Chili Recipe Ever.” Even if you have an iPad giveaway or think you have the best chili recipe, email clients may still flag you for spam. Try something like, “Great Prices from Far Reach,” or “Try Far Reach’s Latest Chili Recipe.”
When someone receives your email, they should know who it’s from without looking at the “From” field. Did you include your logo? Is the email designed with your approved colors? The look of the email should match the look of all other marketing materials your organization develops.
Include images in your email where appropriate and make sure they’re related to the content.
Compress images in your email messages. If you send large images, they load slowly and discourage readers. Size the images to the specifications you need and compress them to 72 dpi. If your image has a lot of detail, link to a high-resolution version on your website.
Make your headlines big and bold. Keep them short, but write them so readers will understand your main message, even if they only read the headline.
Limited Body Copy
Keep body copy in your marketing emails to a minimum. If you have more than two paragraphs of copy per headline, link to the full story on your website or blog.
Physical Mailing Address
Every marketing email message is required by law to include the mailing address of the sender. It is standard to put this information in the footer of the message.
All emails must have an option to unsubscribe from receiving future messages. If a user unsubscribes, you must comply by removing him from your list within 10 days.
Social Sharing Buttons
Get more out of your email message by encouraging users to share it on their social networks. Also include links to your organization’s social profiles so recipients can connect.
One of my favorite things to do at Far Reach is work with companies like iEmergent to help them build a product like Mortgage MarketSmart. The Far Reach team played many roles in this project, but my focus was on custom software development—building the application. One of the most important aspects of building a product is usability. In this post I discuss some of the features and usability decisions we made when developing the application.
Before jumping to the features, I want to review a little background about the idea behind Mortgage MarketSmart. The old business model for iEmergent was to provide maps and a spreadsheet to their clients via mail, email or FTP. The forecast data provided was invaluable to their clients, but the delivery method was far from perfect. Some of the challenges of this model included:
Maps were static. Clients could do some basic functions within the map, but could not customize the map or do any symbolizing of the data.
The delivery channel was via mail or FTP server. Maps were burned on a DVD and mailed to the client. Large spreadsheets were sent via email or FTP servers.
It was impossible to scale. You can only manually create so many maps and spreadsheets without adding a lot of staff.
The solution? Mortgage MarketSmart! Mortgage MarketSmart is a web-based software as a service (SaaS) solution that provides clients access to interactive maps, tables, tools, and easy-to-understand market data.
During the design and development of Mortgage MarketSmart, one of our top priorities was making this a tool that is easy to use. Usability was top priority in all phases of the design and development. Some of the goals/ideas for this application include:
Clients should be able to “visualize their data.”
Usability takes priority over functionality. However, for the most part, we were able to iterate to have the functionality we wanted and still have great usability.
Only provide tools and features that are necessary. This goes toward the minimal viable product (MVP) approach and helps keep the user interface (UI) from getting cluttered.
Treat each piece of the application as a work of art. In Seth Godin’s book, The Icarus Deception, he spends a lot of time talking about your work as art. I treated each widget, button, and popup window as a small piece of art that collectively make one big piece of art.
Interactive Maps—Bringing Data to Life
We knew from the beginning that the maps had to be the primary focus of the application. The maps are interactive and colorful, and contain the data clients want to see. Using ESRI’s ArcGIS software gave us the ability to create and implement awesome maps. With that in mind our goals for the maps included:
Fast loading – Users would not want to wait a long time for a map to load.
Interactive – We needed to make it easy to zoom in/out, pan, and draw on the map.
Colorful – The map is full of data, and colors were important to help clients visualize the “hot” and “cold” spots. We implemented the ability for clients to symbolize their data with a color ramp of their choice.
Clean – We did not want to clutter the map by putting floating windows on top of the map, so we implemented collapsible menus.
Customizable – We allow different base maps (e.g. Bing Map, Bing Roads, Open Street) and other features that users can customize to meet their needs.
The ability to easily view and manage data and lists is important in any application. We spent quite a bit of time designing the navigation to work without violating the goals of the maps. Our solution was a slide-out panel on the left-hand side of the application. This panel works well for several reasons:
Users can show/hide the panel at anytime, which gives them maximum flexibility.
The user is provided with a consistent experience.
Each tab typically contains a single type of data and actions one can apply to that data (e.g. add/update/delete). Examples of the types of data include:
Maps – list of saved maps
Map Contents – what is showing on the map
Datasets – layers of data which can be added to the map
Bookmarks – saved zoom level and position of the map
Markets – list of saved markets
Queries – list of saved queries/filters
Viewing the maps is pretty cool, but part of the power of the maps is the data contained within the maps. To provide user access to this data, we implemented the data panel. Similar to the Navigation Panel we did not want the data panel to interfere with the map, but wanted to give the user easy access to the data, so we implemented a slide-up panel at the bottom of the application. The user has the ability to show/hide this data panel to retrieve data from the map. Some key features of the data panel include:
Users can show/hide the panel at anytime, which gives them maximum flexibility in working with data and the maps.
Each layer of the map can be viewed in the data panel by selecting from the list of layers within the data panel
The columns shown in the data grid can be customized by the user—both the columns displayed and the column header labels.
The data grid can be sorted by any column.
The data grid can be exported to Excel format.
The data grid can be searched—by any column—to help users find the data they are looking for.
We provided different views of the data:
Detailed view – The default view that shows all of the data.
Summary view – Users can select different attributes to see totals by those attributes.
Chart view – Users can view the attribute totals via bar charts.
Map Tools—Selection Tools
One of the goals of the maps is to make them interactive. The map selection tools add to the interactive nature of the application. With these tools, users can draw on the map to select and create their own layers or to filter current layers. It really gives the user the power to customize the maps to fit their needs. Some key features of the tools are:
The user can choose different types of tools when drawing on the map.
The user can select which map layer with which to interact.
The tool behavior gives the user the ability to add, append, or create new layers.
The results of the tool can be seen in the map contents.
The selection tools can be easily shown/hidden by selecting from the map tool menu dropdown or via keyboard shortcut.
We launched Mortgage MarketSmart in October of this year, but I still consider the application a work in progress. We will continue to re-evaluate usability and features based on user feedback, and will prioritize requests from both internal staff and users, always making sure usability remains a high priority.
Here’s a video so you can see inside the application:
Interested in this software? Look for future blogs posts on the technical implementation of Mortgage MarketSmart using ArcGIS.
One barrier that developers face when trying to use an ORM on their project is supporting legacy databases, some of which may contain numerous tables and pre-existing relationships. It can be difficult to build your domain to properly fit the existing database schema—and even if that’s not an issue, it still would take a lot of time to manually generate all of the classes.
Entity Framework Power Tools contains a tool called Reverse Engineer Code First (RECF), which is a big help in these situations. In a nutshell, you point to an existing database and RECF generates your models, your mappings, and your data context. It even gives you the ability to customize how certain things are generated. Pretty slick!
If you’d like to follow along, you’ll need to create database called HumanResources and run the following script to generate a schema and some test data:
Before giving you the goods, I’m going to mention a few things to think about before proceeding. The main decision to make before going this route is determining how future database modifications will be made. Are they going to continue to be made outside of the realm of your application like they presumably are now? Or are you going to take control and have Entity Framework Migrations handle future changes?
In the former approach, you’re going to be limited by a few factors. First, you won’t be able to customize how RECF generates your model. RECF taps into Entity Framework to determine pluralization rules, which are far from perfect. For example, tables that end with “Status” are changed to “Statu.” Also, if you’re dealing with a database that uses crazy naming conventions, then you’re stuck with them. If you try to change them, and then need to run RECF again to get new database changes, your work will be overwritten.
If you’re able to manage future database updates, then you’re in good shape. You can follow the steps outlined in my previous blog post to hook up EF Migrations. The initial state of the database (what you pulled in with RECF) will be considered the first migration. After getting reconciled with EF Migrations, I would spend some fine tuning your mappings so you have a reasonable model to work with.
Let’s Get Started
Once Entity Framework Power Tools is installed (you may have to restart Visual Studio), you can right click on the project where you want the model and context to be created, go to the Entity Framework group, and click Reverse Engineer Code First. In the dialog, enter your database settings and click OK. That’s it. Wait a few seconds and you should have shiny new POCOs, mappings, and a Data Context.
If you don’t like how certain things are mapped, you do have some limited options. If you right click on the project that contains your Data Context, go to the Entity Framework Group, and click Customize Reverse Engineer Templates, you will get three T3 templates generated for you that you can customize. Take note that these aren’t standard T3 templates so they’re not entirely flexible, but if you get creative you can solve a lot of problems.
There are a few issues I want to fix:
I don’t like how a constructor overload is created in my Data Context that sets a Database Initializer.
I want the main constructor in Data Context to pass in the name of my connection string to its base implementation.
I do not want my POCOs to be partial by default.
I don’t want all the method calls in my maps to be prefixed with “.this.” (OCD ALERT!)
For issue 1, I can simply delete lines 16-19 from the Context.tt file. For issue 2, I can change the value on line 22:
For issue 3, I can simply remove the partial keyword on line 13 below:
And for issue 4, I can remove several instances of “this.” from below:
After modifying our templates we can simply execute Reverse Engineer Code First like we did above. The tool will recognize that we have templates and will respect the change we made. You can view the finished product in the GitHub repository I linked above.
While there are some limitations to the Reverse Engineer Code First tool, it can be very useful if we have an existing database that we need to support. The good news is that this tool is open source, so if you run into a limitation that you just cannot live with, you can contribute to the project on Codeplex.
Like I mentioned, if you get creative you can add some useful stuff to your model. On a WPF project I worked with, we modified the templates to inherit from a base model class that contained OnProperyChanged logic. We also implemented validation classes for each entity using FluentValidation that used the Entity Framework engine to determine Required and Max Length validation rules.
There has been some chatter about the future of Reverse Engineer Code First, and it may find itself more of a first-class citizen of Entity Framework. It definitely could use more extensibility and configuration.
In the next post in this series I will discuss some new features of the recently release Entity Framework 6. We will specifically take a look at the new Asynchronous features and how you can take advantage of them.
For iEmergent, Far Reach really is an all-in-one partner for developing and marketing its new mortgage analytics platform, Mortgage MarketSmart.
Mortgage MarketSmart is powered by iEmergent’s forecast data—the only localized data and the most accurate forecasts in the mortgage industry—and historical HMDA data. The application displays data in a way that’s easier to understand than previously used tables. The application is positioned to change how financial professionals access, analyze, and apply mortgage data on a national level as well as in individual markets.
Below are details on how Far Reach helped develop and market the Mortgage MarketSmart app.
Far Reach developed the cloud-based Mortgage MarketSmart application using Esri’s ArcGIS platform. The app allows users to view complex data in easy-to-understand interactive maps and data grids.
Each person in a financial organization can apply Mortgage MarketSmart differently, depending on his role and responsibilities. Executives can see high-level patterns and trends; market managers can understand future trends in regional, state, and local markets; market analysts can glean data to drive marketing and new business; and loan originators can cultivate referral networks to increase originations.
Mortgage MarketSmart was built with the user in mind. As we developed it, we kept in mind what financial professionals would look for in software like this. Collaborating closely with the client, we prioritized functionality that was most important for launching a viable product. This included the basic interactive map, customized data display, the ability to upload custom data, security, data export, and more.
Since launching almost a month ago, we’ve continued to update the app and add new features.
Responsive Web Design & Development
To sell software, you need a website that explains the functionality and benefits. Mortgage MarketSmart is a complex product with different benefits for different users. Far Reach helped communicate benefits through copy and design on the new Mortgage MarketSmart website.
Users can discover, learn about, try, and sign up for Mortgage MarketSmart through the website, so it had to be intuitive and communicate benefits quickly to drive sales.
The website utilizes responsive design, so it’s optimized for viewing on any device. Users get the full website experience from mobile devices—an important feature because of the mobility of financial executives.
We also set up detailed goal tracking on the site using Google Analytics to track when visitors sign up for the product, request a free trial, login to the software, or sign up for the email newsletter—and we can analyze how these users found the website. These statistics help us determine the effectiveness of each of our marketing tactics, discussed below.
Branding & Marketing
Far Reach had a role in in naming Mortgage MarketSmart, and designed the logo for the product. The name is descriptive and the logo is clean, so it’s easy to identify the general industry the product targets.
In addition, we implemented a variety of marketing tactics that work together to promote Mortgage MarketSmart.
Tradeshow Booth Design
iEmergent launched Mortgage MarketSmart at the Mortgage Bankers Association (MBA) Annual Convention & Expo with an eye-catching booth.
Because Mortgage MarketSmart is a new product, we needed attention-grabbing graphics. Far Reach coordinated and designed kiosk wraps and banners using brand colors. The kiosks had monitor mounts—one played the overview video (see below) and one was used for product demonstrations.
Overall, the tradeshow was a success, and iEmergent came home with quality leads and made connections that couldn’t have happened through email.
Product Overview Video
Mortgage MarketSmart is unlike anything else available in the mortgage industry at this time, making it even more important to display the product visually. Product demonstrations were the most effective way of explaining the application to leads, but when the booth was busy, there was a video playing that highlighted the benefits and uses of Mortgage MarketSmart.
This video will continue to be used for an overview of the software.
Local and National PR
Public relations is important for any product launch, especially in a niche market. Far Reach took 2 different approaches for 2 different audiences—a product launch angle for national media, and a local startup angle for Iowa publications. The national release was picked up more than 100 times online, and the local release has been in the news briefs.
iEmergent is a leader in mortgage forecasting, and with Mortgage MarketSmart being the first product of its kind, it’s important to establish expertise. We’re using social media—Twitter, LinkedIn, videos, and blogs—to share information on forecasts, practical applications of the software, the importance of a product like this, and more.
Lead Generation / Email Marketing
The Mortgage MarketSmart website is set up to collect leads interested in the software. Once we have the leads, we don’t just want to ignore them. We’ll use an email marketing strategy for a variety of communication goals—primarily to stay top-of-mind with interested leads, as well as to inform existing users about important new features and updates.
The marketing strategy will continue to evolve. In fact, we’re in the process of integrating feedback from the MBA conference into the next phase of our marketing plan. There will be more exciting product and marketing updates rolling out, so stayed tuned.