Tag-Archive for » Client «

Create an Advanced Contact Form for Client Inquiries

Most web designers rely on inquiries from their portfolio website to produce a decent portion of their business. Contact forms can be very simple, collecting a name and contact information, or they can be much more detailed, providing enough information to get an estimate. While the primary purpose of the contact form on our website has always been to make it easy for potential clients to contact us about web design projects, there are also a number of other reasons that visitors use the contact form and a one-size-fits-all approach has its drawbacks. We recently changed the contact form to include some conditional fields that make the form more customized according to the reason the visitor is contacting us, and in this post we’ll go through the process of creating this type of form.

The form we’ll be creating will contain some basic fields (name, email, phone, website, and message) that are shown to all visitors who are filling out the form, but based on the reason they are contacting us they will also see a few other more specific fields. If the visitor selects “Web Design Services” as their reason for contacting us they will be prompted to tell us if it is a new website or a re-design, enter a budget, and tell us how they found us. If they select “Content Development Services” they will also be prompted to enter a budget, but with different options than the budget for web design services, and so on.

In the past our contact form has included a field to allow visitors to select a budget, but that was based on the assumption that they were contacting us regarding web design services. Since the budget field isn’t applicable for someone who is filling out the contact form just to say hi, this “advanced” form will only show what is relevant based on user input.

Conditional logic open up a lot of possibilities with contact forms, especially for designers and agencies that offer a variety of different services. The user has a better experience because they are not confused by fields that are not relevant to them, and more detailed data is possible because not every field will be shown to every user. This tutorial will show just one example of how this type of form can be used, most likely you can come up with some ways to put it into practice on your own site.

For this tutorial we will be using the Gravity Forms plugin for WordPress (a premium plugin). I purchased a developer’s license for this plugin a few months ago because it makes it very simple to create advanced forms, and I’ve already used it on several projects. With Gravity Forms you can create a simple contact form, a more advanced one like we will be doing here, a form that creates user-submitted posts (such as a community news section), and more. This post is not sponsored or supported in any way by Gravity Forms, and it contains no affiliate links. I believethisadvanced contact form that we will be creating can be useful for just about any web designer or service provider, and using Gravity Formsprovides a quick, simple way to get it done.

Why Use Gravity Forms?

There are countless contact form plugins out there for WordPress, many of them are free, and of course contact forms can also be coded without using a plugin, so why use Gravity Forms? The reason I chose to buy a license for the plugin is because of the time that it can save. Creating a more advanced form with other plugins takes much more time and effort.

Although there is an upfront cost to purchase the license ($39 for a single-site license or $199 for a developer’s license) there is no on-going cost like you would have with some options like Wufoo or FormStack. WordPress users will also like the fact that Gravity Form submissions can be viewed and replied to from within the WordPress dashboard (email notifications can also be set up).

How to Create an Advanced Contact Form with Gravity Forms:

The first thing you’ll need to do is get a license for Gravity Forms. Once you have the purchased the license, download it, install it, and activate it like you would any other WordPress plugin. Once you’ve done that you will see an option for “Forms” in the vertical navigation menu (just below “Comments”) in the WordPress dashboard. Click on “New Form” and we’ll get started. You can hover over the “Untitled” field and click on edit, then you will be able to enter a form title and description.

Setting Up the Basic Fields:

To start with, we’ll create a few basic fields that we want to be a part of every form submission, regardless of the purpose of the inquiry. So we’ll start with the first name and last name fields. Gravity Forms allows you to choose from a list of standard/general form fields (such as single line text, drop down, checkboxes, etc.) and it also includes “advanced” fields for specific purposes, such as name, email, date, etc. We’ll start with the name field, so at the right side of the screen click on the down arrow next to “Advanced Fields” and then click on “Name” and it will add the fields for first and last name.

We’ll make the name fields required, so hover over the fields and you’ll see an “Edit” link appear.

Click on “Edit” and it will open up some options. At the bottom click on the checkbox next to “Required”. This will prevent the form from being submitted without the name filled out.

After you have done that you can click on “Close” where the “Edit” link had been.

Next, we’ll open up the options for the standard fields by clicking on the down arrow, and we’ll select “Single Line Text”.

Click to edit this field, and chance the name from “Untitled” to “Company/Organization”, and then close.

The next field we want to add is for the user’s email address, so click on “Email” under the “Advanced Fields”.

We also want the email address to be a required field, so click on “Edit” and check “Required”, and close.

Then we’ll add a field for the phone number, so click on “Phone” under “Advanced Fields”. Next we’ll add a field for a URL, so select “Website” under “Advance Fields”. Neither of these will be required fields.

The next field we’re going to create will be the most important one, because it will impact what other fields are shown. We’ll create a drop down that allows the user to select the reason for contacting us. Click on “Drop Down” under “Standard Fields”. Then click on “Edit” and change the field label to “Reason for Contacting Us”. For the purposes of this tutorial we are going to create 6 options to chose, but what you create will of course be based upon the services that you offer and the other options that you want to allow visitors to select. The six options that we are using are: 1) Web Design Services, 2) SEO Services, 3) Content Development Services, 4) Consulting, 5) Advertising, and 6) Other. If the user selects “Web Design Services” they will see certain other relevant fields, if they choose “SEO Services” they will see different fields, and so on. So we’re going to create the first option to say “Please Select” so that none of the conditional fields are shown until the reason of contact is chosen (if “Web Design Services” is selected by default, all of those conditional fields will be shown before the user has really chosen “Web Design Services”). We’ll also check the box to make this a required field.

Using Conditional Logic:

Now we can start creating some fields that will be conditional based on the response to the previous field. First, we’ll add a checkbox (under “Standard Fields”) and click on “Edit”. Change the field label to “New Website or Re-Design” and edit the choices to be “New Website” and “Re-Design, and delete the third choice. Now, to make it conditional, click on the advanced tab and at the bottom you will see a checkbox for “Enable Conditional Logic”. Check that box and you’ll see some new options appear. Since we have only created one field that could be used for conditional logic it is the only one you will see. Change “Please Select” to “Web Design Services” and this field will be shown whenever someone is filling out a contact form regarding web design, but not for other services.

Next, we’ll create a drop down menu that allows users to select their budget range for web design services. So click on “Drop Down” under “Standard Fields” and enter whatever budget ranges are appropriate. Then, click on the “Advanced” tab, check the box for “Enable Conditional Logic”, and have it appear when the user selects “Web Design Services”.

We’ll also ask our potential web design clients how they found us, so once again click on “Drop Down” under “Standard Fields”. This time we’ll enter a few different options including search engine, referral, link from another website, I’m a blog reader, and other. Again, click on the “Advanced” tab and make it conditional on the user selecting “Web Design Services”.

Next, we’ll create a checkbox field that is relevant to SEO services, so click on “Checkboxes” under “Standard Fields”. We’re editing the field label to say “What Package Would You Like?”, and adding the following choices: keyword research, competitor analysis, and full site evaluation. Click on the “Advanced” tab and check the box for “Enable Conditional Logic”, and this time change it to be “SEO Services”.

Next, we’ll create a budget drop down that will apply to content development services. So click on “Drop Down” under “Standard Fields”. Change the field label to be “Budget” and add the appropriate budget ranges. Then click on “Advanced” and check the box for “Enable Conditional Logic”, and make it conditional upon the user selecting “Content Development Services”.

The last field we’re going to create is the message field that will not be conditional, every user will see it, and it will allow the user to add their comments or questions that will be emailed to us. Click on “Paragraph Text” under “Standard Fields”. Edit the field label to be “Message”, and make no other changes.

Setting Up Email Notifications:

Click on the “Save Form” buttonat the bottom of the page.Now that our form has been created we will set it up to send email notifications when a new inquiry is submitted, so click on “Setup Email Notification for This Form”.

Check the box next to “Enable email notification to administrators”. Then enter the email address where you would like it to be sent in the “Send to Email” field. (Gravity Forms includes routing options which sends the email to different addresses based on a field in the form, but we will not be using this feature for this tutorial.) In the “From Email” field select “Email” in the drop down. This will use the email address entered by the user as the “from” address, so if you reply to an email it will go to the user.

You can then set up the subject of the emails, and you can use form fields. So we’ll type in the text “A Message from” and then using the drop down we will select the first name and the last name.

Next, we’ll customize the body of the message that we receive. You can use the drop down to select form fields to include in the message, but we’ll keep it simple by selecting “All Submitted Fields”.

So the body of the message will now include all information that is provided by the user in the contact form.

Inserting the Form:

The last thing left to do is to insert the form into our Contact Page. So edit the page in WordPress, or create a new page if one doesn’t already exist, and you’ll see an icon to insert a form from Gravity Forms.

Place your cursor where you would like to enter the form and click on the icon. Then select the form from the drop down and you can choose to show or hide the form title and description.

Click “Insert Form” and you’re done. Now you’ll have an advanced contact form that makes it easier for visitors and provides more relevant information to you.

I hope this post has given you some ideas that can be put into practice on your own site.

For more WordPress-related content please see:

  • 9 WordPress Hacks to User Interactivity
  • 15 Exceptionally Useful Resources for WordPress Theme Designers
  • 20+ Tutorials and Resources for Working with Custom Fields in WordPress

Client Tactics: Freelance Contract Basics Part 3

As said in part one of this article, contracts are one of the most vital and misunderstood tools of the freelancers arsenal. In part two of this article we looked at schedules, and I asked if the awesome readers of 1WD would like to see a downloadable sample contract and you all responded.So here in the sixth installment of the Client Tactics Series, I will explain this sample contract and how to customize it.

Customizing the Contract.

For ease of use, I’ve included the contract in several forms. The form I use is actually the .AI Illustrator file. Why? Because I am lazy resourceful. In illustrator, use the find and replace text tool Edit>Find and Replace to Select and change the following fields.

  • FREELANCER’S NAME
  • CLIENT
  • YOUR STATE

Enter the text as written above and click “Match State” so that Illustrator will only find the instances of the words in capital letters. Change each one of the fields to your corresponding information and you’re done.

Obviously if you use the included .DOC format then all you will have to do is hit Ctrl+F to and search for the above keywords and replace them as needed.

The Legal Disclaimer.

This contract and schedule is only intended to be a starting point for your own custom contract and schedules. You are free to edit this anyway you like. I am not an attorney, once you have the contract to your liking, run it by a local attorney. They will make sure that everything is up-to-par and can suggest any additional information that may need to be included for your local requirements. Just as it’s a good idea to have an accountant, it’s also a good idea to have an attorney you can get advice from time to time.

Download the Contracts Here

Client Handling:Finding your Client’s Pain Points

In my years of dealing with a variety of different clients, I have noticed one curious trend. It is amazing how many other Web designers have left a bad taste in people’s mouths from previous experiences they’ve had. I think this boils down to two things: lack of experience and lack of awareness.

I want to cover the second point today. As a Web designer/developer, you have an amazing opportunity to shape your clients’ perceptions of what the Internet and online technology can do for them and their business. Your actions will largely determine how successful your existing clients are and who your next client will be. How you go about this can take a variety of forms, but as many a marketing expert will tell you, one very effective way of growing your business is identify your customers’ pain points.

Recognizing pain

Photo by Tomasz Kobosz

Every customer is going to have one or more frustrations related to their business or their Web site. You need to learn how to read between the lines and listen past the immediate requests of your client. The goal is to keep reinforcing the idea that you understand what they really need and can articulate it better than they can.

Many business owners are intimidated by technology. There’s an obvious pain point: “Help, I don’t understand how this stuff works!” Therefore, the more you can educate your client, translate computer/Internet jargon into plain everyday speech, and empower your client to learn more about good Web practices and the benefits of regular updates (news, product updates, blogging, social media, etc.), the more you will be seen as a vital business partner.

Learn to recognize pain points by asking the right questions and listening to the answers. You can ask about your client’s goals and vision. You can ask about who they want to target to grow their business. You can ask what motivates them and what doesn’t. For those with existing Web sites, you can ask what features they get requests for often, or which off-the-wall things they might wish they could do. The goal isn’t necessarily to implement their requests verbatim, but to get an idea of where to focus your invention and ingenuity.

Eliminating pain

Photo by Ali Farid

For example, suppose you’re working on a niche community site for a client, and they ask how you can allow members to embed videos on their profile page. You know the client doesn’t have the funds to pay for a video streaming solution like Brightcove, so you suggest simply allowing users to post videos from YouTube. They say “great, make it so” and agree to a bit more cash to pay for your implementation. Now you have three options at this point:

  1. Create a free-form HTML box and allow people to paste in YouTube’s code for embedding videos. Simple for you to implement but rather confusing for many users. Hardly a great experience and it only creates another pain point.
  2. Find a prefab JavaScript widget that can automatically suck in videos from a user’s YouTube account. A little bit better, but remember, your client wants community members to embed videos that are relevant to the topic of the site. Besides, you don’t want to blindly copy someone else’s UI. This is an experience that YOU are creating for your client and their audience.
  3. Develop a solution where a user can copy a YouTube video URL into a field and you’ll generate the embed code automatically. Make it better by allowing users to add and delete specific videos from their profile. And, while you’re at it, let users provide a username, then show a list of recent videos from their account and allow them to choose a video to embed. Top it off by adding support for the popular alternative video service Vimeo as well. You or a developer can program this by using the publicly available APIs that YouTube and Vimeo provide.

I chose the third option for a real project I worked on last year, and my client was thrilled with the outcome. Remember, their pain point was “how do I support videos on my site? I don’t want it to cost lots of money!” By creating a transparent, straightforward process whereby social media videos could be added and displayed in the context of the site’s personalized UI, I reinforced the idea that I understand needs, know how to solve problems, and make cool things that work right.

Don’t be afraid of pain

Photo by Jamie Brelsford

It’s easy to find articles circulating like “How to avoid bad clients” or “Freelance clients that suck”. While it’s true that some clients are more trouble than they’re worth, and it’s a good idea to keep an eye out for potential money/time drains, I think it’s wrong to have the attitude that clients are generally a bother who need to be contained.

Don’t be afraid of your clients’ pain. When they seem to be making unreasonable requests or are exasperating you with their endless questions or concerns, remember, YOU are the professional. You weren’t hired to be a hot-shot, you were hired to solve problems.

Find out what the client really needs. Dig a little deeper. Perhaps those endless requests to tweak a certain HTML form is stemming from them not really knowing what info is most important to capture. Take a step back and help them determine what the particular business need really requires, then implement the form accordingly.

Or maybe you find yourself going back and forth on the colors of the header for a site. Stop and think: did you talk to the client originally about what colors they like or don’t like? If your client hates sky blue, no amount of convincing on your part will make them love your sky blue background image. After all, if you think you should have the ultimate say on what looks good, then go join an art gallery. Fact is, you’re a designer for hire. Your client’s happiness is ultimately all that matters.

Become the Expert that Everyone Wants

Photo by Asif Akbar

Imagine a business owner you’ve worked with telling their friends: “you’ve got to talk to my Web designer — s/he is so easy to work with and always knows how to make things work better and fix problems that come up. I used to be confused by all this Web stuff, but s/he made it simple for me!”

A client will of course be happy with the good-looking design you create or the nifty feature you implement, but the truth is they’ll be most happy with your professionalism. Stay on track, ask lots of questions, go the extra mile, and eliminate their pain points. It may seem like a lot of effort to jump through every hoop that arises, but when you go above and beyond the call of duty, you cement your reputation as a can-do key player in the Web design business. In the end, it will definitely pay off!

What do you think? I’d love to hear your feedback below.

Thumbnail photo by Derek Kimball

Client Tactics: Freelance Contract Basics Part 2

As said in part one of this article, contracts are one of the most vital and misunderstood tools of the freelancers arsenal. Here in the fifth installment of the Client Tactics Series, we will look at schedules in contracts between a freelancer and his clients.

What is a Schedule?

A schedule is just a fancy legal way of saying “this is my work process and this is how you (dear client) will pay me.”. Schedules like contracts benefit the client and the freelancer in the fact that it lays everything out on the table. No hidden surprises, everything is accounted for.

Where To Put It?

Depending on the length of language on your contract. Your schedules could fall on the same sheet or a secondary sheet. I opt for the secondary sheet, (It’s not OCD, it’s just a compulsion; okay?) That way it isn’t muddled into the middle of the contract. Lets face it, once the client signs your contract and they get their copy, they will only look at it should problems arise. By putting the schedules on its own page, the client will be more apt to look at that page more frequently.

What does a Schedule Look Like?

How many schedules one has depends on how one break apart one’s design flow and invoicing style. For smaller projects I have two, bigger projects three. Here’s what a sample schedule would look like:

SCHEDULE 1 for My Eager Client provided by MyDesignStudio
Item 1 The Freelancers Fees: My Hourly Fee ($xx.xx)
Estimate of Time Needed: xx hours.
Special Software: Expression Engine ($xxx.xx)
Item 2 The Premises: MyDesignStudio, INC.
123 Maple St.
Anywhere, TN 37067
Item 3 The Services: Custom Expression Engine Template Development
Valid xHtml and CSS
PHP
Search Engine Optimization
Item 4 The Products: One fully licensed install of Expression Engine. Twenty-two (22) Fully licensed stock photos, and a completed website.
Item 5 Commencement Date: 05/01/2010
Item 6 Termination Date: 07/01/2010

The above would only need to be duplicated for situations for multiple invoice stages, which are a definitely beneficial idea. State what you are doing and what was being utilized in each section, saving the products until the last schedule unless they are needed during that particular phrase or schedule.

Additional Questions To Think About.

Here are some additional questions to comprehend when building a contract.

  • What are the grounds for terminating this Agreement?
    • Late payments, Missing Deadlines, Etc.
  • What notice must be given before termination is permitted?
    • In most contracts this is either thirty or sixty days.
  • What penalties are there for termination, if any?
    • I advocate a “walk away clean” strategy. Finish designing what ever they have paid you for and then part ways, if that means you give them a logo and a splash screen instead of a whole website, so be it.
  • What happens when there is a delay on the part of the freelancer?
  • Is the freelancer going to sub-contract out some of the work under the Agreement?
    • Being upfront with this information will be beneficial to the client as well as spread the love with design community. Plus you don’t want to be asked a Django question and no nothing about it. I usually include a line like: “Custom Design: xHtml, CSS, and jQuery by Jeff Boshers Additional Development: PHP by X, Photography: 22 Photos by X”
  • Who will be liable for any sub-contractors who provide the Products or Services?
    • This should always fall to the freelancer unless the client hand picked the sub-contractor for the job. This is a nightmare.
  • What are the means of communication between the client and the freelancer?
    • This is where you’d say if you didn’t want that 2am phone call about your client’s cat blog.
    • Also detail out what number the can call. When they can call it.
    • Explain your turnaround time on email or text message.
  • Who gets to sign off on completed design work.
    • Names, phone numbers, and blood types. By having this info you’ll know who can make what changes. This will keep you out of revision hell later.
  • What happens when the client wants to make a change after the designs have been signed off?
  • How are notices to be provided to the client and or freelancer under the Agreement?
    • Written notice is best, opt for traditional snail mail that way there’s a signature.

Using Pre-Made Contracts or Templates.

When making your first contract its wise to look over a pre-made contract or the contract of a freelance buddy. The most intimidating part of writing a contract is legalese. Its boring, hard to understand, and complicated. Like my writing style. According to wikipedia here is the definition of legalese:

Legalese is an English term first used in 1914 for legal writing that is designed to be difficult for laymen to read and understand, the implication being that this abstruseness is deliberate for excluding the legally untrained and to justify high fees.

By starting with a template and adding in the special bits that make your business different, you’ll decrease a lot of the overhead that would come by either having an attorney write up or having to learn all the in and outs of contracts. By looking at either a pre-made template or one from a freelancing friend, you’ll be able to pick up legalese and be living it up like Robert Shapiro! Okay so maybe you won’t be living it up like Mr. Shapiro but you’ll at least know what a tortfeasor is.

Would you guys like to see a complete downloadable sample contract written by yours truly and distributed through 1webdesigner? Do you have any questions or comments leave them below and I would be glad to help out.