appsmithorg / appsmith

Platform to build admin panels, internal tools, and dashboards. Integrates with 25+ databases and any API.
https://www.appsmith.com
Apache License 2.0
33.79k stars 3.64k forks source link

[Example] CRM Example app #1284

Closed Nikhil-Nandagopal closed 3 years ago

Nikhil-Nandagopal commented 3 years ago

Describe the problem

We want to build a CRM example application to demonstrate the power of tools that can be built on appsmith. We can use this template as a guiding star on what features the app should have https://www.jetadmin.io/templates/custom-crm The app should be built on app.appsmith.com and be made public The documentation and readme should be updated with the application link

yash2189 commented 3 years ago

Hello I'm new to opensource . I'm not sure if I have understood the above issue completely. Can you please tell me how do I get started with this? This would be my first contribution to Appsmith.

Nikhil-Nandagopal commented 3 years ago

@yash2189 This issue requires you to build an app on appsmith. The specifics of the app are in the link provided You can read our documentation to learn how to get started with building :) https://docs.appsmith.com

yash2189 commented 3 years ago

I'll have read the documentation carefully and try creating on the appsmith cloud itself . Would that be fine? Do I need to pay for anything before creating the app on the appsmith cloud?

Nikhil-Nandagopal commented 3 years ago

Yes, that is fine. There are no charges on appsmith cloud :)

On Tue, Oct 20, 2020 at 11:39 AM Yash Ajgaonkar notifications@github.com wrote:

I'll have read the documentation carefully and try creating on the appsmith cloud itself . Would that be fine? Do I need to pay for anything before creating the app on the appsmith cloud?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/appsmithorg/appsmith/issues/1284#issuecomment-712616994, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA5XPJUFNW2MDHN6LEBH5XLSLUSQPANCNFSM4SWA7OVQ .

-- Nikhil Nandagopal (Founder @ appsmith https://appsmith.com)

yash2189 commented 3 years ago

If it's similar to #1283 can I try creating that instead I found it to be a bit easy I'm not sure though.

Nikhil-Nandagopal commented 3 years ago

It's similar but both should be of the same level of complexity. You need to create a db with data for both and build the UI / Queries on appsmith.

On Tue, Oct 20, 2020 at 11:44 AM Yash Ajgaonkar notifications@github.com wrote:

If it's similar to #1283 https://github.com/appsmithorg/appsmith/issues/1283 can I try creating that instead I found it to be a bit easy I'm not sure though.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/appsmithorg/appsmith/issues/1284#issuecomment-712619314, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA5XPJVOTD4E3IQBUNITVTLSLUTDRANCNFSM4SWA7OVQ .

-- Nikhil Nandagopal (Founder @ appsmith https://appsmith.com)

yash2189 commented 3 years ago

Sure I will start from today itself

Nikhil-Nandagopal commented 3 years ago

@yash2189 I don't see a PR for this issue yet so I'm unassigning you from it. I understand something may have come up so feel free to come back to our open issues when you have a chance!

chrdoud commented 3 years ago

Hi, can you be more specific? Must use mockup base? Other? Do I have to built it? Where? Api usage? Is the DB persistent or do you have some reset timer? The link give imo a poor crm example but great activity user flow, which part do you want? , don't say both 😏

Nikhil-Nandagopal commented 3 years ago

@chrdoud You can use the mock database that every personal org comes with. I think this can be achieved with queries directly to the database so no APIs should be required. We'll help you persist any changes you need to the mock database and it does get auto-reset every day. The link is only indicative of what a CRM could look like. I'm not sure what you mean by activity user flow but essentially the application should help a company manage their customers in some form :)

chrdoud commented 3 years ago

The use case i propose : how to manage a list of customer (crud) - simple customer table client detail form way to manage some status based on action on customer - form, dropdown the next thing i can do with my customer -form, dropdown 2 customers state, prospect, registered customer, so it can be affected different income , one field 1 bar chart , prospect income, customer turnover

no date detail, no filter

Nikhil-Nandagopal commented 3 years ago

@chrdoud can we also have multiple deals per customer because we'd like to show a 1 : Many relation? Also, can we update the customer state based on whether a new deal is signed or the old deal expires? I think that would make it a solid CRM

chrdoud commented 3 years ago

ok a "deal" table, unique id for a deal, customer id in foreign key , the status of the deal, the income and the realised turnover. So 2 stastus pending and done

So i can manage customer, and view deal(s) of one customer view deals and manage deal(s) of one customer

ok i will share a simple ui with actions.

chrdoud commented 3 years ago

https://app.appsmith.com/applications/601b97269dd8c16154e139ac/pages/601b97269dd8c16154e139ae

chrdoud commented 3 years ago
Nikhil-Nandagopal commented 3 years ago

@chrdoud can you make it public, we can't see the page till then :)

chrdoud commented 3 years ago

@Nikhil-Nandagopal , you got it, it's just a start,

Nikhil-Nandagopal commented 3 years ago

@chrdoud looks awesome!! Can't wait to see more

chrdoud commented 3 years ago

hi all, this is a generic sql ddl, you have to adapt it for postgres ;~)

I will add an api request for country list

A Map to locate customer, the purpose is to manually place a marker after reseach address 1 - how to initialize the to the user location ? i not found an appsmith.sometinglatLong 2 - how can i limit one marker at a time ? 3 - on action,place marker, is this new marker is the map.selected markers? 4- how to reset markers ?

well this will become a template for resolve business case :~)

CREATE TABLE customer ( cust_id serial NOT NULL, name VARCHAR NULL , email VARCHAR NULL , address1 VARCHAR NULL , address2 VARCHAR NULL , city VARCHAR NULL , zip_code VARCHAR NULL , country VARCHAR NULL , geo_lat VARCHAR NULL , geo_long VARCHAR NULL , usr_crea VARCHAR NULL , usr_modif VARCHAR NULL , date_crea DATETIME NULL , date_modif DATETIME NULL , PRIMARY KEY (cust_id) );

CREATE TABLE deal ( deal_id SERIAL NOT NULL, cust_id BIGINT NULL , desc_short VARCHAR NULL , desc_long VARCHAR NULL , status VARCHAR NULL , income DECIMAL NULL , turnover DECIMAL NULL , date_crea DATETIME NULL , date_modif DATETIME NULL , date_win DATETIME NULL , date_lost DATETIME NULL , PRIMARY KEY (deal_id) );

ALTER TABLE deal ADD CONSTRAINT FK_customer_TO_deal FOREIGN KEY (cust_id) REFERENCES customer (cust_id);

chrdoud commented 3 years ago

Hi @Nikhil-Nandagopal, is there a pbm on this subject?

Nikhil-Nandagopal commented 3 years ago

@chrdoud what do you mean by pbm?

chrdoud commented 3 years ago

@Nikhil-Nandagopal Sorry pbm is problem

rishabhrathod01 commented 3 years ago

@Nikhil-Nandagopal Is someone working on this? i would like to give it a try.

akshayrangasaid commented 3 years ago

Hi @Rishabh-Rathod

This is an open example, please feel free to work on it. Please share specifications, and we can get started on this.

Akshay

rishabhrathod01 commented 3 years ago

Hi @Rishabh-Rathod

This is an open example, please feel free to work on it. Please share specifications, and we can get started on this.

Akshay

@akshayrangasaid I checked the CRM example shared in above link and here is published version of that.

and also checked demo created by @chrdoud which is published here.
It has features mentioned below

Are there any specifications which are expected from a CRM ?

What i believe can be added in above example are mentioned below

akshayrangasaid commented 3 years ago

Hi @Rishabh-Rathod,

The reference app form @chrdoud needs minor modifications. The next steps will need a change to indicate what the date of the next step is, and the stage of the deal in the pipeline.

The major modification to this is to show deals by stage in the pipeline. The stages for example could be Lead, Contact Made, Demo Scheduled, Demo Complete, Quote Shared, Quote Accepted, Customer.

For the next steps, the modification would be to add steps like send email, call again, follow-up on LinkedIn, Send Quote, etc with a datetime so the user can see their tasks for the day.

The complete CRM will app will have 4 major pages.

  1. User Page -> This page shows the logged-in user their tasks for the day and the total amount of pipeline they are dealing with. This should also display deals based on state in pipeline
  2. Customer Details Page -> User should be able to view and modify details of customers -> Customer name, Contacts in the customer, customer description, use cases relevant, location, address
  3. Deal Details -> Similar to customer details, but with deal details. Deal Stage, Deal Value, Primary Contact for the deal, Next Steps
  4. Manager Page -> Overall view of pipeline and how each sales rep is doing. This is similar to the last point you've mentioned.

I think sharing the app should solve for employee creation and modification, and as an admin of appsmith, you can revoke access using your dashboard.

A very important consideration is the database/store you are planning to use, we'd like to make all our demo apps forkable, so users can fork it and play around with it or use it in their own organization. For this the database/store needs to be public.

My personal recommendation would be to use a public google sheet or airtable base, but happy to hear your thoughts on this.

rishabhrathod01 commented 3 years ago

My personal recommendation would be to use a public google sheet or airtable base, but happy to hear your thoughts on this.

Current plan is to create a public google sheet for tables and if needed then a SQL dump in the end.

we'd like to make all our demo apps forkable, so users can fork it and play around with it or use it in their own organization.

How will a user fork a demo project in appsmith? As @chrdoud has created a smaller version of a demo project and it would be great if others could fork it with access permission.

chrdoud commented 3 years ago

Hi, at first it was developed for a dB usage, Google sheet was not directly accessible. I was waiting for appsmith team to create a dB. And bug correction. So i Can continue on a Google sheet , it is a great Idea.

rishabhrathod01 commented 3 years ago

So i Can continue on a Google sheet

Cool @chrdoud, Do let me know if you want to collaborate to complete the demo.

akshayrangasaid commented 3 years ago

Hi @chrdoud and @Rishabh-Rathod

Yes, Google sheets would be ideal for this application, we'll also try and introduce a fork application functionality so users can fork this app and connect it to their own Google Sheets Backend.

We've recently released the OAuth2 and Google Sheets Plugin. This should hopefully make this development trivial from a backend standpoint.

Let me know what you guys think, and happy to hear your feedback.

@Rishabh-Rathod we will also be creating a few more example apps with requirements by mid-next week, you could also try taking a crack at some of them from the beggining.