This tutorial doesn’t assume any existing Xpoda knowledge.
▶️ Watch Now: Customer Relationship Management
──────────────────────────────
──────────────────────────────
Before We Start the Tutorial
We will develop an application to manage a company’s interaction with existing and potential customers. This tutorial is about managing business relationships and also specifically focusing on customer retention and ultimately driving sales growth.
In this tutorial, we will create 6 different forms to cover functionality;
- Customer ID Card: Where you'll be identifying the customer’s information.
- Authorized ID Card: Where you'll be identifying the authority's information.
- Address Introduction Card: You have to be recording the customer's address information.
- Calendar Entry Form: Where you'll be able to schedule customer meetings.
- Calendar: Where you'll be viewing schedules in the calendar.
- Report: You must report the screen of the project at the end.
──────────────────────────────
Preparing and Designing
Title: To identify customer’s title
Sector: To identify customer’s sector
Tax Administration: Customer’s tax administration
Tax Number: Specific number for the customer's tax administration
Representative: To identify customer's representative
Customer: Customer name
Customer Type: To identify customer type
Phone: Numbers a person has to call with a telephone
Address: Detailed address
Authorized: Having official permission or approval
Start Date: The calendar day on which a project initiates.
End Date: The calendar day on which a project ends.
Topic: To write the topic of the meetings
Please keep in mind, Xpoda Studio will create fields at the database
right after you click the ‘’Save’’ button from the toolbar.
To make sure, use the ‘’Save’’ button frequently or you may lose
your data that entered.
Developing Application
Now that we designed our application data and UI, it is time to develop an application using XPoda Studio. Login to XPoda Studio and add a new form.
──────────────────────────────
Customer ID Card
1-) In this form, we want to record the customer’s identification information.
Add a new form and name it ‘’CRM_CUSTOMERS’’.
2-) From the toolbar on the left side, add a new Text Box and name it as ‘’Title’’ in both fields.
3-) From the toolbar, add a new Drop Down Box and name it as ‘’Sector’’.After you make it you need to find the Field Style on the right panel and see Constant Value and leave as it is. Scroll down and see a blank field and fill it typing;
Construction
Finance
Retail
Production
4-) Add a new Text Box and name it as ‘’Tax Administration’’ in both fields.
5-) Add a new Numeric Box and name it ‘’ Tax Number’’ in both fields.
6-) Add a new Drop Down Box and name it ‘’Representative’’ in both fields. We should pull out the data of the representatives from our database. In order to do this, we headed to our database using Query Wizard (on the right panel at the bottom of the blank SQL field).
7-) We need to find our (XPODA_CLIENT_USERS) table.
Now, we’re dragging and dropping off;
User ID
UserFullname
to the Query Builder in order to create the SQL Query. See, it’s that much easy to write an SQL query with Xpoda, just by dragging and dropping.
8-) Add a new Drop Down Box and name it ‘’Customer Type’’ in both fields. See the blank field and fill it typing;
Direct Customer
Solution Partner
Point Of Sale
9-) From the toolbar, Add a new Group Box and name it ‘’Customer ID Card’’.Embed all form elements.
10-) Add a new Button from the toolbar, name it ‘’Find’’ and assign an icon.
11-) From the right panel, add action to reach saved data when the ‘’Find’’ button is clicked. Type of Action should be "When Clicked" to handle button click. The operation will be "Open Form List" because we want to open a form list. Value Area will be ‘’All Forms’’ and we heading to our database using Query Wizard.
12-) We need to find our (CRM_CUSTOMERS) table.
Now, we’re dragging and dropping off;
UserTableID
Title
Sector
Tax_Administration
Tax_Number
Representative
Customer_Type
- to the Query Builder in order to create the SQL Query.
13-) We were hiding Representative ID. Let's access the information of
Representative ID
This information is in (XPODA_CLIENT_USERS) table.
Now, we’re dragging the
UserFullName
View image for the SQL join table.
14-) Add a new Button, name it ‘’New’’ and assign an icon.
Add action to open a new document when the ‘’New’’ button is clicked. Type of Action should be "When Clicked" to handle button click. The operation will be "New".
15-) Add a new Button, name it ‘’Delete’’ and assign an icon.
Add action to delete the document when the ‘’Delete’’ button is clicked. Type of Action should be "When Clicked" to handle button click. The operation will be "Delete".
16-) Add a new Button, name it ‘’Save’’, and assign an icon.
Add action to save the document when the ‘’Save’’ button is clicked. Type of Action should be "When Clicked" to handle button click. The operation will be "Save".
17-) Let's run our app to see changes/newly added forms.
──────────────────────────────
Authorized ID Card
1-) In this form, we want to record authorized identification information.
Add a new form and name it ‘’CRM_AUTHORIZED’’.
2-) From the toolbar on the left side, add a new Text Box and name it as ‘’Name’’ in both fields.
3-) From the toolbar, add a new Drop Down Box and name it as ‘’Customer’’. We should pull out the data of the customers from the database. In order to do this, we headed to the database using Query Wizard (on the right panel at the bottom of the blank SQL field). We headed to our database using Query Wizard (on the right panel at the bottom of the blank SQL field). We need to find (CRM_CUSTOMERS) table and use this query;
SELECT
CRM_CUSTOMERS.UserTableID,
CRM_CUSTOMERS.Title
FROM
dbo.CRM_CUSTOMERS WITH (NOLOCK)
4-) Add a new Text Box and name it as ‘’Title’’ in both fields.
5-) Add a new Text Box and name it as ‘’Phone’’ in both fields. Select Mask as Phone.
6-) From the toolbar, add a new Picture and name it as ‘’Photo’’.
7-) From the toolbar, Add a new Group Box and name it ’’Authorized ID Card’’ to be able to embed all form elements.
8-) Add a new Button from the toolbar, name it ‘’Find’’ and assign an icon.
Add action to reach saved data when the ‘’Find’’ button is clicked. What we want with this action is that when we click on the find button we'd like to open a new form list in a new window. In order to do that, we choose "When Clicked" as a type of action, "Open Form (List)" as an operation, and "In New Window" as a condition. Don't forget to choose "All Forms" as the value area. We also need to write its query as;
SELECT
CRM_AUTHORIZED.UserTableID,
CRM_AUTHORIZED.Name,
CRM_AUTHORIZED.Customer AS [Company ID],
CRM_CUSTOMERS.Title AS [Company Name],
CRM_AUTHORIZED.Title,
CRM_AUTHORIZED.Phone,
CRM_AUTHORIZED.Photo
FROM
dbo.CRM_AUTHORIZED WITH (NOLOCK)
LEFT OUTER JOIN
dbo.CRM_CUSTOMERS WITH (NOLOCK)
on CRM_AUTHORIZED.Customer = CRM_CUSTOMERS.UserTableID
9-) View image for the SQL query above.
10-) Add a new Button, name it ‘’New’’ and assign an icon.
Add action to open a new document when the ‘’New’’ button is clicked.
- We want to save everything we typed in the form when the “New” button clicked. In order to do this, we should create a new action. When the “New” button selected, you need to click “Add New Action” to do this. Type of Action should be "When clicked" to handle button click. The operation will be "New".
(then please don’t forget to hit save button on the same pane and on the top of the software to save everything in the form.)
11-) Add a new Button, name it ‘’Delete’’ and assign an icon.
Add action to delete the document when the ‘’Delete’’ button is clicked.
- We want to save everything we typed in the form when the “Delete” button clicked. In order to do this, we should create a new action. When the “Delete” button selected, you need to click “Add New Action” to do this. Type of Action should be "When clicked" to handle button click. The operation will be "Delete".
(then please don’t forget to hit save button on the same pane and on the top of the software to save everything in the form.)
12-) Add a new Button, name it ‘’Save’’, and assign an icon.
Add action to save the document when the ‘’Save’’ button is clicked.
- We want to save everything we typed in the form when the “Save” button clicked. In order to do this, we should create a new action. When the “Save” button selected, you need to click “Add New Action” to do this. Type of Action should be "When clicked" to handle button click. The operation will be "Save".
(then please don’t forget to hit save button on the same pane and on the top of the software to save everything in the form.)
13-) Let's run our app to see changes/newly added forms.
──────────────────────────────
Address Introduction Card
1-) In this form, we want to record address introduction information.
Add a new form and name it ‘’CRM_ADDRESSES’’.
2-) From the toolbar on the left side, add a new Text Box and name it as ‘’Address’’ in both fields.
3-) From the toolbar, add a new Drop Down Box and name it as ‘’Customer’’. We should pull out the data of the customers from the database. In order to do this, we headed to the database using Query Wizard (on the right panel at the bottom of the blank SQL field). We headed to our database using Query Wizard (on the right panel at the bottom of the blank SQL field). We need to find (CRM_CUSTOMERS) table and use this query;
SELECT
CRM_CUSTOMERS.UserTableID,
CRM_CUSTOMERS.Title
FROM
dbo.CRM_CUSTOMERS WITH (NOLOCK)
4-) Add a new Text Box and name it as ‘’Phone’’ in both fields. Select Mask as Phone.
5-) Add a new Text Box and name it as ‘’Province’’ in both fields.
6-) Add a new Text Box and name it as ‘’District’’ in both fields.
7-) Add a new Text Box and name it as ‘’Address’’ in both fields. Activate Multiline.
8-) From the toolbar, Add a new Group Box and name it ‘’Address Introduction Card’’. Embed all form elements.
9-) Add a new Button from the toolbar, name it ‘’Find’’, and assign an icon.
Add action to reach saved data when the ‘’Find’’ button is clicked. From the right panel, add action to reach saved data when the ‘’Find’’ button is clicked. Type of Action should be "When Clicked" to handle button click. Operation will be "Open Form List" because we want to open a form list. Value Area will be ‘’All Forms’’ and we headed to our database using Query Wizard. Use this query;
SELECT
CRM_ADDRESS.UserTableID,
CRM_ADDRESS.Address_Name AS [Addres Name],
CRM_ADDRESS.Customer AS [Company ID],
CRM_CUSTOMERS.Title AS [Company Name],
CRM_ADDRESS.Phone, CRM_ADDRESS.Province,
CRM_ADDRESS.District,
CRM_ADDRESS.Address
FROM
dbo.CRM_ADDRESS WITH (NOLOCK)
LEFT OUTER JOIN
dbo.CRM_CUSTOMERS WITH (NOLOCK)
on CRM_ADDRESS.Customer = CRM_CUSTOMERS.UserTableID
10-) View image for the SQL query above.
11-) Add a new Button, name it ‘’New’’ and assign an icon.
Add action to open a new document when the ‘’New’’ button is clicked.
- We want to save everything we typed in the form when the “New” button clicked. In order to do this, we should create a new action. When the “New” button selected, you need to click “Add New Action” to do this. Type of Action should be "When clicked" to handle button click. Operation will be "New".
(then please don’t forget to hit save button on the same pane and on the top of the software to save everything in the form.)
12-) Add a new Button, name it ‘’Delete’’ and assign an icon.
Add action to delete the document when the ‘’Delete’’ button is clicked.
13-) Add a new Button, name it ‘’Save’’, and assign an icon.
Add action to save the document when the ‘’Save’’ button is clicked.
- We want to save everything we typed in the form when the “Save” button clicked. In order to do this, we should create a new action. When the “Save” button selected, you need to click “Add New Action” to do this. Type of Action should be "When clicked" to handle button click. Operation will be "Save".
(then please don’t forget to hit save button on the same pane and on the top of the software to save everything in the form.)
14-) Let's run our app to see changes/newly added forms.
──────────────────────────────
Calendar Entry Form
1-) In this form, we want to record the calendar entry form.
Add a new form and name it ‘’CRM_CALENDAR’’.
2-) From the toolbar on the left side, add a new Drop Down Box and name it as ‘’Customer’’. We should pull out the data of the customer's database. In order to do this, we headed to the database using Query Wizard (on the right panel at the bottom of the blank SQL field). We headed to our database using Query Wizard (on the right panel at the bottom of the blank SQL field). We need to find (CRM_CUSTOMERS) table and use this query;
SELECT
CRM_CUSTOMERS.UserTableID,
CRM_CUSTOMERS.Title
FROM
dbo.CRM_CUSTOMERS WITH (NOLOCK)
3-) Add a new Drop Down Box and name it as ‘’Authorized’’.
4-) We should pull out the data of the authorities from the database and filter operations. In order to do this, we headed to the database using Query Wizard (on the right panel at the bottom of the blank SQL field). We headed to the database using Query Wizard (on the right panel at the bottom of the blank SQL field). We need to find (CRM_AUTHORIZED) table and use this query;
SELECT
CRM_AUTHORIZED.UserTableID,
CRM_AUTHORIZED.Name
FROM
dbo.CRM_AUTHORIZED WITH (NOLOCK)
WHERE
CRM_AUTHORIZED.Customer = $PCustomer'
5-) Click on the ‘’Customer’’ and add a new action for the update process. View images for changes.
6-) Add a new Drop Down Box and name it as ‘’Personnel’’. We should pull out the data of the personnel from the database. In order to do this, we headed to the database using Query Wizard (on the right panel at the bottom of the blank SQL field). We headed to our database using Query Wizard (on the right panel at the bottom of the blank SQL field). View image for filter operations. We need to find (XPODA_CLIENT_USERS) table and use this query;
SELECT
XPODA_CLIENT_USERS.UserID,
XPODA_CLIENT_USERS.UserFullName
FROM
dbo.XPODA_CLIENT_USERS WITH (NOLOCK)
7-) Add a new Date-Time and name it as ‘’Start Time’’.
8-) Add a new Date-Time and name it as ‘’End Time’’.
9-) Add a new Text Box and name it as ‘’Topic’’ in both fields. Activate Multiline.
10-) From the toolbar, Add a new Group Box and name it ‘’Calendar Entry Form’’.Embed all form elements.
11-) Add a new Button from the toolbar, name it ‘’Find’’ and assign an icon.
Add action to reach saved data when the ‘’Find’’ button is clicked.
From the right panel, add action to reach saved data when the ‘’Find’’ button is clicked. Type of Action should be "When Clicked" to handle button click. The operation will be "Open Form List" because we want to open a form list. Value Area will be ‘’All Forms’’ and we heading to our database using Query Wizard. Use this query;
SELECT
CRM_CALENDaR.UserTableID,
CRM_CALENDaR.Customer AS [Company ID],
CRM_CUSTOMERS.Title AS [Company Name],
CRM_CALENDaR.Authorized AS [Authorized ID],
CRM_AUTHORIZED.Name AS [Authorized Name],
CRM_CALENDaR.Personnel AS [Personnel ID],
XPODA_CLIENT_USERS.UserFullName AS [Personnel Name],
CRM_CALENDaR.Start_Time AS [Start Time],
CRM_CALENDaR.End_Time AS [End Time],
CRM_CALENDaR.Topic
FROM
dbo.CRM_CALENDaR WITH (NOLOCK)
LEFT OUTER JOIN
dbo.CRM_CUSTOMERS WITH (NOLOCK)
on CRM_CALENDaR.Customer = CRM_CUSTOMERS.UserTableID
LEFT OUTER JOIN
dbo.CRM_AUTHORIZED WITH (NOLOCK)
on CRM_CALENDaR.Authorized = CRM_AUTHORIZED.UserTableID
LEFT OUTER JOIN
dbo.XPODA_CLIENT_USERS WITH (NOLOCK)
on CRM_CALENDaR.Personnel = XPODA_CLIENT_USERS.UserID
12-) View image for SQL query above.
13-) Add a new Button, name it ‘’New’’ and assign an icon.
Add action to open a new document when the ‘’New’’ button is clicked.
- We want to save everything we typed in the form when the “New” button clicked. In order to do this, we should create a new action. When the “New” button selected, you need to click “Add New Action” to do this. Type of Action should be "When clicked" to handle button click. Operation will be "New".
(then please don’t forget to hit save button on the same pane and on the top of the software to save everything in the form.)
14-) Add a new Button, name it ‘’Delete’’ and assign an icon.
Add action to delete the document when the ‘’Delete’’ button is clicked.
- We want to save everything we typed in the form when the “Delete” button clicked. In order to do this, we should create a new action. When the “Delete” button selected, you need to click “Add New Action” to do this. Type of Action should be "When clicked" to handle button click. Operation will be "Delete".
(then please don’t forget to hit save button on the same pane and on the top of the software to save everything in the form.)
15-) Add a new Button, name it ‘’Save’’, and assign an icon.
Add action to save the document when the ‘’Save’’ button is clicked.
- We want to save everything we typed in the form when the “Delete” button clicked. In order to do this, we should create a new action. When the “Delete” button selected, you need to click “Add New Action” to do this. Type of Action should be "When clicked" to handle button click. Operation will be "Delete".
(then please don’t forget to hit save button on the same pane and on the top of the software to save everything in the form.)
16-) Let's run our app to see changes/newly added forms.
──────────────────────────────
Calendar
1-) First of all, in this form, we want to display the entered data.
Add a new form and change the type of form as a report.
2-) Add a new Calendar. View images for changes and user queries.
3-) Use this query;
SELECT
XPODA_CLIENT_USERS.UserID,
XPODA_CLIENT_USERS.UserFullName,
XPODA_CLIENT_USERS.UserColor
FROM
dbo.XPODA_CLIENT_USERS WITH (NOLOCK)
4-) Let's run our app to see changes/newly added forms.
──────────────────────────────
Report
1-) First of all, in this form, we want to create a report screen.
Add a new form and change the type of form as a report.
2-) Add a new List.
3-) Add Button to update in this list and name it as ‘’Customers’’. Add an action in order to make the button work. From the right pane, you need to choose "When Clicked" for the type of action, "Update Value" for the operation field and, "GridListe_1" for the Value Area.
4-) Use this query for this button;
SELECT
CRM_CUSTOMERS.UserTableID,
CRM_CUSTOMERS.Title,
CRM_CUSTOMERS.Sector,
CRM_CUSTOMERS.Tax_Administration AS [Tax Administration],
CRM_CUSTOMERS.Tax_Number AS [Tax Number],
CRM_CUSTOMERS.Representative,
CRM_CUSTOMERS.Customer_Type AS [Customer Type]
FROM
dbo.CRM_CUSTOMERS WITH (NOLOCK)
5-) Add Button and name it as ‘’Authorities’’. Add an action in order to make the button work. From the right pane, you need to choose "When Clicked" for the type of action, "Update Value" for the operation field and, "GridListe_1" for the Value Area.
6-) Use this query for this button;
SELECT
CRM_AUTHORIZED.UserTableID,
CRM_AUTHORIZED.Name,
CRM_AUTHORIZED.Title,
CRM_CUSTOMERS.Title AS [Company Name],
CRM_AUTHORIZED.Phone,
CRM_AUTHORIZED.Photo
FROM
dbo.CRM_AUTHORIZED WITH (NOLOCK)
LEFT OUTER JOIN
dbo.CRM_CUSTOMERS WITH (NOLOCK)
on CRM_AUTHORIZED.Customer = CRM_CUSTOMERS.UserTableID
7-) Add Button and name it as ‘’Addresses’’. Add an action in order to make the button work. From the right pane, you need to choose "When Clicked" for the type of action, "Update Value" for the operation field and, "GridListe_1" for the Value Area.
8-) Use this query for this button;
9-) Add a Button and name it as ‘’Calendar’’. Add an action in order to make the button work. From the right pane, you need to choose "When Clicked" for the type of action, "Update Value" for the operation field and, "GridListe_1" for the Value Area.
10-) Use this query for this button;
SELECT
CRM_CALENDaR.UserTableID,
CRM_CUSTOMERS.Title AS [Company Name],
CRM_AUTHORIZED.Name AS [Authorized Name],
XPODA_CLIENT_USERS.UserFullName AS Personnel,
CRM_CALENDaR.Start_Time AS [Start Time],
CRM_CALENDaR.End_Time AS [End Time],
CRM_CALENDaR.Topic
FROM
dbo.CRM_CALENDaR WITH (NOLOCK)
LEFT OUTER JOIN
dbo.CRM_CUSTOMERS WITH (NOLOCK)
on CRM_CALENDaR.Customer = CRM_CUSTOMERS.UserTableID
LEFT OUTER JOIN
dbo.CRM_AUTHORIZED WITH (NOLOCK)
on CRM_CALENDaR.Authorized = CRM_AUTHORIZED.UserTableID
LEFT OUTER JOIN
dbo.XPODA_CLIENT_USERS WITH (NOLOCK)
on CRM_CALENDaR.Personnel = XPODA_CLIENT_USERS.UserID
11-) Let's run our app to see changes/newly added forms.