Customer relationship management (CRM) software helps a business organize its leads and client information in one place.
A CRM can store and track:
- Client names and contact details
- Leads and potential customers
- Emails, calls, and notes
- Projects, tasks, and deadlines
- Sales opportunities and deal stages
- Follow-ups and client history
With OrbitalWP, you can build your own CRM inside WordPress and manage client work in the same system.
This guide will walk you through how to build and manage a CRM using OrbitalWP and WordPress. I have included a practical set of custom fields for a small agency or service business. Change the fields and options to fit the way you work.
Create the Client CRM Data Structure
OrbitalWP does not use a fixed CRM structure. You decide what information to store by creating custom fields for your tasks.
For this tutorial, we’ll create one task for each client. We’ll use the task title for the client or company name, then add custom fields for information such as their email address, phone number, project details, and current stage.
Here is the field structure we will use:
| Field name | Field key | Data type | Why we need it |
|---|---|---|---|
| Primary Contact | primary_contact | Text Field | Stores the name of the main person you communicate with. |
| Email Address | email_address | Stores and validates the client’s primary email address. | |
| Phone Number | phone_number | Text Field | Stores a phone number. A text field allows different phone-number formats. |
| Website | website | URL | Stores the client’s current website address. |
| Client Phase | client_phase | Dropdown | See the required option list after this table. |
| Services Needed | services_needed | Checkbox | See the required option list after this table. |
| Lead Source | lead_source | Radio Buttons | See the required option list after this table. |
| Estimated Project Value | estimated_value | Number | Stores the estimated value of the client’s project. |
| Last Contact Date | last_contact_date | Date | Records the last time you spoke with or emailed the client. |
| Next Step | next_step | Text Field | Records the next action you need to take. |
| Client Notes | client_notes | Textarea | Stores short notes about the client or project. |
Some custom fields require a list of options. For this CRM, we will configure options for Client Phase, Services Needed, and Lead Source as we create each field.
Keep Your Client Records Private
Your CRM may contain names, contact details, project values, and private notes. Before adding any clients, check that OrbitalWP is managing who can access your tasks.
- Go to Orbital → Plugin Settings.
- Select the General tab.
- Find Task Access.
- Set Task Visibility Mode to Orbital Managed.
- Click Save Settings.
This setting keeps access to your client records under OrbitalWP’s permission system. Do not use WordPress Standard for private CRM records because published tasks may be publicly accessible under normal WordPress visibility rules.
Create the Custom Fields in OrbitalWP
To create the fields for your CRM, go to Orbital → Custom Fields in your WordPress dashboard.
The Add New Field section contains the settings for each field. Custom fields are available across all OrbitalWP tasks, so you only need to create each field once. The Location setting places the field in the sidebar or at the bottom of the main content area.

Let’s begin with the Primary Contact field:
- Enter
primary_contactin Field Key. The field key identifies the field inside OrbitalWP and cannot be changed after the field is created. - Enter Primary Contact in Field Label. This is the name you will see when editing a client.
- Choose Text Field under Field Type.
- Add a short explanation under Description if one would help your team understand what to enter.
- Under Location, choose Sidebar.
- Leave Make this field required unchecked unless you want to indicate that the field should be completed for every client.
- Click Add Field.
Using Sidebar keeps short client details together in the Orbital → Fields section of the task editor.
Repeat these steps for the other fields that do not require options:
| Field Label | Field Key | Field Type | Location |
|---|---|---|---|
| Email Address | email_address | Sidebar | |
| Phone Number | phone_number | Text Field | Sidebar |
| Website | website | URL | Sidebar |
| Estimated Project Value | estimated_value | Number | Sidebar |
| Last Contact Date | last_contact_date | Date | Sidebar |
| Next Step | next_step | Text Field | Sidebar |
| Client Notes | client_notes | Textarea | Main Content Area |
The Main Content Area is a better location for Client Notes because it gives longer notes more room. For Estimated Project Value, enter whole numbers when adding client information because OrbitalWP does not apply currency symbols or currency formatting.
Add the Client Phase Options
Fields created with Dropdown, Checkbox, or Radio Buttons include an additional Options section. Each option has two parts:
- Value is the internal identifier. Use lowercase letters and underscores.
- Label is the option name shown to the user.
Create the Client Phase field as follows:
- Enter
client_phaseunder Field Key. - Enter Client Phase under Field Label.
- Choose Dropdown under Field Type.
- Under Options, enter
leadfor Value and Lead for Label. - Click Add Option and add each remaining phase:
| Value | Label |
|---|---|
discovery | Discovery |
proposal_sent | Proposal Sent |
client | Client |
past_client | Past Client |
rejected | Rejected |
- Choose Sidebar under Location.
- Click Add Field.
The Dropdown field allows you to select one phase for each client. Later, you can also use this field to group clients in Board View.
Add the Services Needed Options
Create the Services Needed field using Checkbox so that you can select more than one service for the same client:
- Enter
services_neededunder Field Key. - Enter Services Needed under Field Label.
- Choose Checkbox under Field Type.
- Add the following Value and Label pairs under Options, clicking Add Option when you need another row:
| Value | Label |
|---|---|
website_design | Website Design |
website_hosting | Website Hosting |
website_maintenance | Website Maintenance |
seo | SEO |
graphic_design | Graphic Design |
consulting | Consulting |
- Choose Sidebar under Location.
- Click Add Field.
Add the Lead Source Options
Finally, create Lead Source using Radio Buttons. This field type lets you select one primary source for each client.
- Enter
lead_sourceunder Field Key. - Enter Lead Source under Field Label.
- Choose Radio Buttons under Field Type.
- Add these options:
| Value | Label |
|---|---|
referral | Referral |
organic_search | Organic Search |
social_media | Social Media |
paid_advertising | Paid Advertising |
- Choose Sidebar under Location.
- Click Add Field.
After saving the last field, check the Existing Fields section to confirm that all of your CRM fields are listed. You can use Edit to change a field’s label, type, description, options, location, or required setting. The Field Key cannot be changed after creation.
Add Your First Client
In this CRM setup, each top-level OrbitalWP task represents one client. The task title identifies the client or company, while the custom fields store the details you need to manage the relationship.
To add your first client:
- Go to Orbital → Add New. This opens the Add New Task screen.
- Enter the client or company name as the task title.
- Use the main editor for longer background information, meeting notes, or other details that do not fit in a short custom field.
- In the Orbital sidebar, open Fields.
- Complete the custom fields you created for your CRM.
- Set Due Date to the date when you should next contact the client.
- Use Assignee to select the team member responsible for the relationship.
- Under Task Categories, add or select a category named CRM. This will help you separate client records from regular project tasks.
- Publish the task using the normal WordPress Publish control.
For example, a new client record might contain:
| Field | Example |
|---|---|
| Task title | Brightside Dental |
| Primary Contact | Maya Sanders |
| Email Address | [email protected] |
| Phone Number | (555) 010-2040 |
| Website | https://example.com |
| Client Phase | Discovery |
| Services Needed | Website Design and SEO |
| Lead Source | Referral |
| Estimated Project Value | 6500 |
| Last Contact Date | Date of the discovery call |
| Next Step | Prepare and send proposal |
| Client Notes | Prefers email communication |
| Due Date | Date the proposal should be sent |
| Assignee | Team member managing the client |
We will use OrbitalWP’s built-in Due Date as the next follow-up date. This allows follow-up dates to appear in OrbitalWP’s task filters and Calendar View.
A task needs both a Start Date and a Due Date to appear in Timeline View. Because a proposed client does not have a confirmed work schedule yet, leave Start Date empty for now.
Repeat this process whenever you need to add another client or lead. Each client will have one main task that keeps their contact information, current phase, required services, next action, and follow-up date together.
Organize Clients in Board View
Once you have added several clients, use Board View to see where each one is in your workflow.
- Go to Orbital → Kanban & Timeline.
- Select Board View.
- Open Group tasks by: and select Client Phase.
- Open Categories and select CRM.
The board will organize your client tasks into the phases you created:
- Lead
- Discovery
- Proposal Sent
- Client
- Past Client
- Rejected
Make sure you select your custom Client Phase field under Group tasks by:. Do not use the built-in Approval Status field, which controls a separate task approval and completion workflow.
To change a client’s phase, drag their card into another lane. For example, when you send a proposal, move the client from Discovery to Proposal Sent. OrbitalWP will update the task’s Client Phase field automatically.
If a client does not have a phase selected, its card will appear in the uncategorized lane. Open the client task and select the correct Client Phase to place it in your workflow.
Board View displays the top-level tasks that represent your clients. Subtasks you add later for individual pieces of client work do not become separate client cards on this board.
Plan Client Work with Dates and Subtasks
Use Start Date and Due Date differently depending on how much work has been scheduled for the client.
For a lead or proposed client, leave Start Date empty and use Due Date for the next follow-up. The client will appear on that date in Calendar View, but it will not appear in Timeline View.
This is usually the best setup while you are waiting for a reply, scheduling a discovery call, or deciding whether the project will move forward. There is no reason to create a project schedule before the work has been planned.
Once you begin a defined piece of work, you can use both dates to create a working period for the client. For example, while preparing a proposal:
- Set Start Date to the date you will begin preparing the proposal.
- Set Due Date to the date the proposal should be sent.
In this example, Due Date still works as the next follow-up because sending the proposal is the next client action. With both dates entered, the top-level client task can also appear in Timeline View.
Only add a Start Date when it represents real scheduled work. Do not add one merely to make every client appear on the Timeline.
Add a Subtask for Client Work
If you want to break the scheduled work into smaller actions, add them as subtasks under the client. For example, you could add a subtask for writing the proposal.
First, save or publish the top-level client task. Subtasks cannot be added until the parent task has been created.
Then:
- Open the client task.
- In the Orbital sidebar, open Subtasks.
- Click Add Subtask.
- In the Create New Subtask panel, click Reset Fields.
OrbitalWP initially copies many field values and categories from the parent task into the subtask form. Clicking Reset Fields clears those copied values so that the client’s contact details, phase, services, and notes are not unnecessarily duplicated on the subtask.
After resetting the form, complete only the information needed for this piece of work:
| Field | Example |
|---|---|
| Subtask Title | Write Proposal |
| Subtask Description | Prepare the project scope, timeline, and estimated cost. |
| Status | Published |
| Categories | CRM |
| Start Date | Date proposal writing begins |
| Due Date | Date the draft should be finished |
| Assignee | Team member writing the proposal |
Leave the remaining custom fields blank. Information such as Primary Contact, Email Address, Client Phase, and Estimated Project Value belongs on the top-level client task.
Keep the subtask’s dates within the working period established by the parent task. The parent might run from the day proposal work begins through the day it will be sent, while the Write Proposal subtask ends a day earlier to leave time for review.
Click Create Subtask when you are finished.
When the parent and subtask both have dates, Timeline View can display the client’s overall working period with the more detailed action underneath it. A subtask without its own dates may be shown across the parent’s date range with a Missing Dates label, so set both dates when the subtask represents scheduled work.
Subtasks also contribute to the parent task’s progress. Completing every subtask can complete the parent task, so this approach works best when the top-level task represents a defined client engagement or current work cycle rather than a permanent client account.
Manage Client Follow-Ups in Calendar View
The CRM only stays useful when the next action is easy to find. While a client is still a lead or proposal, we are using Due Date as the next follow-up date. Calendar View gives you a simple schedule of upcoming calls, emails, proposals, and other client actions.
- Go to Orbital → Kanban & Timeline.
- Select Calendar View.
- Open Categories and select CRM.
- Review the client tasks scheduled for the current day and the week ahead.
- Open a client task when it is time to complete the next action.
After each conversation or completed action, update the Last Contact Date, Next Step, and Due Date. Change the Client Phase when the relationship moves forward. These four updates keep the client record current and place the next action back on your calendar.
For example, after a discovery call, record the call date, change the next step to Prepare and send proposal, and set the due date for the day the proposal should be sent. If the call moved the lead forward, drag the client into the appropriate lane in Board View.
After the client becomes an active project, the parent task’s dates may represent the full working period instead. In that case, create a dated subtask for the next scheduled action so it still appears on the calendar without changing the project’s overall due date.
Keep the CRM Simple
You do not need to recreate every feature found in a large sales platform. Start with the information your team actually uses, then add or change fields as your process becomes clearer.
The main idea is to keep each client’s contact information, current phase, next action, follow-up date, and related work in one place. Board View shows where every relationship stands. Calendar View shows what needs your attention next. Subtasks and Timeline View help you plan the work after a lead becomes an active project.
Once the structure is in place, add a few real clients and use it for a week. You will quickly see which fields help, which ones you can remove, and what your team needs to manage clients without another separate platform.