CRM客户关系管理系统项目需求文档doc.docx
《CRM客户关系管理系统项目需求文档doc.docx》由会员分享,可在线阅读,更多相关《CRM客户关系管理系统项目需求文档doc.docx(63页珍藏版)》请在冰豆网上搜索。
CRM客户关系管理系统项目需求文档doc
客户关系管理系统
需求规格说明书
编号:
SK-SK-CRM
版本:
1.0
作者:
SK-GROUP
日期:
2012-8-9
审批:
日期:
1概述
客户是公司最宝贵的资源,为了更好的发掘老客户的价值,并开发更多新客户,XX公司决定实施客户关系管理系统。
希望通过这个系统完成对客户基本信息、联系人信息、交往信息、客户服务信息的充分共享和规范化管理;希望通过对销售机会、客户开发过程的追踪和记录,提高新客户的开发能力;希望在客户将要流失时系统及时预警,以便销售人员及时采取措施,降低损失。
并希望系统提供相关报表,以便公司高层随时了解公司客户情况。
客户服务是一个涉及多个部门,存在一定流程的工作。
客户服务水平的高低决定着公司的核心竞争力。
该客户关系管理系统应提供一个客户服务在线平台,使客户服务处理过程中相关人员可以在线完成服务的处理和记录工作。
1.1范围
本系统包括:
营销管理、客户管理、服务管理、统计报表和基础数据五个功能模块。
另包括权限管理模块用于系统的用户、角色和相关权限。
系统功能为本说明书与附件Demo版界面描述中功能的并集。
在上述文件未明确描述的情况下,应能满足合同和相关投标书所描述的功能。
2系统说明
2.1概述
客户关系管理系统用于管理与客户相关的信息与活动,但不包括产品信息、库存数据与销售活动。
这三类数据将由XX公司X销售系统进行管理。
但本系统需要提供产品信息查询功能、库存数据查询功能、历史订单查询功能。
2.2用户与角色
与本系统相关的用户和角色包括:
系统管理员:
管理系统用户、角色与权限,保证系统正常运行。
销售主管:
对客户服务进行分配。
创建销售机会。
对销售机会进行指派。
对特定销售机会制定客户开发计划。
分析客户贡献、客户构成、客户服务构成和客户流失数据,定期提交客户管理报告。
客户经理:
维护负责的客户信息。
接受客户服务请求,在系统中创建客户服务。
处理分派给自己的客户服务。
对处理的服务进行反馈。
创建销售机会。
对特定销售机会制定客户开发计划。
执行客户开发计划。
对负责的流失客户采取“暂缓流失”或“确定流失”的措施。
高管:
审查客户贡献数据、客户构成数据、客户服务构成数据和客户流失数据。
2.3系统功能
系统用例图如图1所示,子用例图及详细的用例描述见“功能性需求”部分。
图1
2.4当遵循的标准或规范
本系统采用MySql数据库,使用JavaEE进行开发,采取B/S架构。
数据库设计原则上符合第三范式,且规范,易于维护。
程序需使用MVC模式,采用三层架构,保证系统的可维护性和可扩展性。
项目所用的公共方法
/**
*公共添加方法
**/
publicSerializablesave(Tt);
/**
*公共根据id查询方法
**/
publicTgetById(Serializableid);
/**
*公共查询所有方法
**/
publicListgetAll();
/**
*保存返回对象
**/
publicTsaves(Tt);
/**
*修改
**/
publicvoidupdate(Tt);
/**
*根据id修改
**/
publicvoidupdate(Serializableid);
/**
*删除
**/
publicvoiddelete(Tt);
/**
*根据id删除
**/
publicvoiddelete(Serializableid);
/**
*根据id查询单个对象
**/
publicTqueryone(Serializableid);
/**
*分页
**/
publicPagingBeanPaginglist(intpageSize,intpageNo);
/**
*模糊查询分页
**/
publicPagingBeanMistinessPaginglist(DetachedCriteriadc,intpageSize,intpageNo);
分页标签
加BaseService调用是要传使用中的service中间层需要跳转的JSP页面的路径URL
都要存在session中传service中间层的的sessionname为service
传跳转jsp页面的sessionname为url
还要存count,list都用session
3系统说明
功能性需求
本系统分营销管理、客户管理、服务管理、统计报表、基础数据和权限管理六个模块。
3.1营销管理
营销管理模块包含销售机会的管理和对客户开发过程的管理,子关系图如图1所示。
图1
1、营销管理模块的作用:
①销售机会管理:
开发新客户,由客户经理负责,并由销售主管或高管等指派任务,客户经理有权改动客户的信息(如为指派该客户信息的状态的修改,但该客户必须是由当前客户经理开发的)。
②客户开发计划:
是为已指派的客户制定开发计划,可以对客户拟定开发计划项并执行,而且还可以选择是否开发成功,成功就归档,否则就保留开发状态,同时也可以选择终止开发,此时状态为开发失败。
(由被指派人负责)。
2、该模块详细介绍:
2.1、营销的过程是开发新客户的过程。
对老客户的销售行为不属于营销管理的范畴。
2.2、客户经理有开发新客户的任务,在客户经理发现销售机会时,应在系统中录入该销售机会的信息。
销售主管也可以在系统中创建销售机会。
2.3、所有的销售机会由销售主管进行分配,每个销售机会分配给一个客户经理。
2.4、客户经理对分配给自己的销售机会制定客户开发计划,计划好分几步开发,以及每个步骤的时间和具体事项。
2.5、制定完客户开发计划后,客户经理按实际执行请跨功能填写计划中每个步骤的执行效果。
2.6、在开发计划结束的时候,根据开发的结果不同,设置该销售机会为“开发失败”或“开发成功”。
2.7、如果开发客户成功,系统自动创建新的客户记录。
1.1.1销售机会管理(销售主管、客户经理)
该界面所用到的方法及跳转路径:
查询全部的方法:
getAll()
查询全部数据的路径:
salchance.do?
method=getAll
界面如下图2所示:
图2
1.1.1.1创建销售机会(销售主管、客户经理)
界面如下图3所示:
图3
如何创建营销机会:
点击上图3右上角的
按钮跳到图4界面进行创建。
(注意:
标注红色*为必填!
)
1.1.1.1.1业务概述
见3.1节的描述。
1.1.1.1.2使用者
销售主管、客户经理
1.1.1.1.3输入要素
该界面所用到的方法及跳转路径:
添加的方法:
insert()
查询全部数据的路径:
salchance.do?
method=insert
创建销售机会的系统界面如图4所示:
图4
创建销售机会时需录入以下信息:
表1
数据项
说明
输入格式
是否必填
编号
系统自动生成
输入框只读
机会来源
文本
客户名称
文本
是
成功机率
从0到100的数字
数字
是
概要
对销售机会的简要描述
文本
是
联系人
文本
联系人电话
文本
机会描述
文本
是
创建人
自动填入当前登录用户,用户不可更改
输入框只读
是
创建时间
当前系统时间
输入框只读
是
1.1.1.1.4处理流程
从页面获取输入信息,当点击图4中的
按钮时将在数据库中创建新记录。
1.1.1.1.5输出要素
当保存成功将提示“保存成功”。
反之报告相应错误。
页面必填项未填时不允许提交表单。
1.1.1.2修改销售机会(销售主管、客户经理)
1.1.1.1.6业务概述
对未分配的销售机会记录可以编辑。
1.1.1.1.7使用者
销售主管、客户经理
1.1.1.1.8输入要素
在销售机会管理的列表页面列出所有状态为“未分配”的销售机会记录,可选择一条进行编辑。
该界面所用到的方法及跳转路径:
查询全部的方法:
getAll()
查询全部数据的路径:
salchance.do?
method=getAll
界面如图5所示:
图5
注意:
在编辑页面,可以对机会来源、客户名称、成功机率、概要、联系人、联系人电话、机会描述进行编辑。
其他信息不可编辑。
该界面所用到的方法及跳转路径:
查询单个数据的方法:
getByid()
查询单个数据的路径:
salchance.do?
method=getByid
修改单个数据的方法:
update()
修改单个数据的路径:
salchance.do?
method=update
界面如图6所示:
图6
1.1.1.1.9处理流程
在列表页面选择“未分配”的销售机会进行编辑,跳转到编辑页面;在编辑页面填入更新的信息,提交表单,保存新的信息到数据库。
1.1.1.1.10输出要素
提示“保存成功”,或报告相应错误。
页面必填项未填时不允许提交表单。
1.1.1.3删除销售机会(销售主管、客户经理)
该界面所用到的方法及跳转路径:
删除单个数据的方法:
delete()
删除单个数据的路径:
salchance.do?
method=delete
1.1.1.1.11业务概述
状态为“未分配”的销售机会可以删除。
删除时需要判断当前登录用户为该销售机会的创建人,否则不可删除。
1.1.1.1.12使用者
销售主管、客户经理
1.1.1.1.13输入要素
如图4所示,在“未指派”的销售机会列表中选择一项删除。
1.1.1.1.14处理流程
点选删除操作后应提示“确认删除?
”,用户选“确定”则执行删除操作,否则不执行。
1.1.1.1.15输出要素
删除成功后提示“删除成功”。
1.1.1.4指派销售机会(销售主管)
1.1.1.1.16业务概述
销售主管根据各客户经理的负责分区、行业特长等对销售机会进行指派。
每个销售机会指派给一个客户经理,专事专人。
指派成功后,销售机会状态改为“已指派”。
1.1.1.1.17使用者
销售主管
1.1.1.1.18输入要素
进行指派时需要选择输入客户经理,系统自动输入指派时间。
两相皆未必输项。
该界面所用到的方法及跳转路径:
查询单个数据的方法:
getByid()
查询单个数据的路径:
salchance.do?
method=getByid
界面如图7所示:
图7
1.1.1.1.19处理流程
选择要指派的销售机会,察看销售机会的详细信息并选择客户经理进行指派。
1.1.1.1.20输出要素
指派成功后提示“指派成功”,该销售机会状态改为“已指派”(即“开发中”)。
1.1.2客户开发计划(客户经理)
介绍:
对“已指派”的销售机会制定开发计划,执行开发计划,并记录执行结果。
客户开发成功还将创建新的客户记录。
该界面所用到的方法及跳转路径:
查询全部数据的方法:
getAll()
查询全部数据的路径:
salplan.do?
method=getAll
客户开发计划界面如图8所示:
图8
1.1.2.1制定开发计划(客户经理)
1.1.1.1.21业务概述
客户经理对分配给自己的销售机会制定开发计划。
1.1.1.1.22使用者
客户经理
1.1.1.1.23输入要素
1)在制定开发计划时,应显示出销售机会的详细信息。
2)客户经理可以通过新建计划项,编辑已经有的计划项,即删除计划项来针对一个销售机会来制定客户开发计划。
3)每个计划项包括两个输入要素:
日期和计划内容,都是必输项。
日期的输入格式为“2007-12-13”。
4)编辑计划项时,日期不可以编辑。
该界面所用到的方法及跳转路径:
查询全部数据的方法:
getByid()
查询全部数据的路径:
salplan.do?
method=getByid
界面如图9所示:
图9
1.1.1.1.24处理流程
首先选择一“已指派”的销售机会进行指定计划的操作,然后制定计划。
1.1.1.1.25输出要素
提交并更新当前页面时在计划项列表中显示新建的计划项。
1.1.2.2执行开发计划(客户经理)
1.1.1.1.26业务概述
完成客户开发计划的制定后,客户经理开始按照计划内容执行客户开发计划,并按时记录执行结果。
1.1.1.1.27使用者
客户经理
1.1.1.1.28输入要素
对每个计划项填写执行效果,并保存。
该界面所用到的方法及跳转路径:
查询全部数据的方法:
insert()
查询全部数据的路径:
salplan.do?
method=insert
界面如图10所示:
图10
1.1.2.3开发成功(客户经理)
1.1.1.1.29业务概述
某个客户开发计划执行过程中或执行结束后如果客户同意购买公司产品,已经下订单或者签订销售合同,则标志客户开发成功。
客户开发成功时,需修改销售机会的状态为“开发成功”。
并根据销售机会中相应信息自动创建客户记录。
1.1.1.1.30使用者
客户经理
1.1.1.1.31输入要素
从列表中选择一个状态为“已指派”的销售机会,点选“开发成功”操作。
或者在执行计划页面点选“开发成功”操作。
1.1.1.1.32处理流程
修改销售机会的状态为“开发成功”。
根据销售机会中相应信息(包括客户名称、联系人和联系人电话)自动创建客户记录。
1.1.1.1.33输出要素
操作成功后提示“操作成功”。
1.1.2.4开发失败(客户经理)
1.1.1.1.34业务概述
某销售机会在确认客户的确没有采购需求后,或不具备开发价值时可认为“开发失败”。
1.1.1.1.35使用者
客户经理
1.1.1.1.36输入要素
从列表中选择一个状态为“已指派”的销售机会,点选“终止开发”操作。
或者在执行计划页面点选“终止开发”操作。
1.1.1.1.37处理流程
修改销售机会的状态为“开发失败”。
1.1.1.1.38输出要素
操作成功后提示“操作成功”。
3.2客户管理
客户经理主要负责公司客户信息的管理,每个客户经理有责任维护自己负责的客户信息,随时更新。
客户信息管理主要分为客户信息管理与客户流失管理,概要:
1、客户信息管理
只显示该客户经理所有的客户信息
相关操作:
编辑、联系人、交往记录、历史订单、删除(只能对是本客户经理的客户才能删除)
跳转路径:
list.do?
method=show
DAO方法Paginglist()分页查询
点击查询调用MistinessPaginglist()模糊分页查询
1.1编辑客户信息
跳转路径:
list.do?
method=queryone
DAO方法queryone()查找单个
1.1.1只能编辑状态为正常的客户信息
使用者:
客户经理
1.1.2客户满意度和客户信用度候选项的值都是1~5。
1.1.3地区,名称,客户经理名称,客户等级,客户满意度、信用度,地址,邮政编码,电话,传真,网址,法人,开户银行,银行账号都不能为空
1.1.4编辑特定客户的信息,输入新信息后点“保存”按钮,返回列表页面。
1.1.5提示“保存成功”或报告错误。
1.1.6必须填写正确后才能保存成功否则跳回本页面显示错误信息
使用到的数据库表为cst_customer(客户信息表)工程相关命名actionCustomerActionfromCustomerFrom
跳转路径:
list.do?
method=update
DAO方法update()修改方法
1.2客户联系人
跳转路径:
linkman.do?
method=show
DAO方法list()查询所有
使用者:
客户经理
1.2.1每个客户可以有多个联系人。
1.2.2联系人操作:
新建、编辑、删除
使用到数据库表为cst_linkman(联系人表)相关命名actionLinkmanActionfromLinkmanFrom
1.2.3新建联系人
跳转路径:
linkman.do?
method=add
DAO方法save()添加
使用者:
客户经理
1.2.3.1联系人姓名,职位,办公电话不能为空,性别默认为男,还可输入手机号码和备注信息。
注意:
联系人是属于某个客户的
1.2.3.2填写正确后才能保存,否则跳回本页面显示相关错误信息,
1.2.3.3提示保存成功,或操作失败
1.2.4编辑联系人
查找单个时跳转路径:
linkman.do?
method=queryone
DAO方法queryone()查找单个
使用者:
客户经理
1.2.4.1显示联系人相关信息
’*‘号必填的不能修改为空
1.2.4.2提示保存成功或操作失败
修改联系人跳转路径:
linkman.do?
method=update
DAO方法update()修改
1.2.5删除联系人
1.2.5.1提示删除成功跳回所有联系人页面
删除联系人跳转路径:
linkman.do?
method=delete
DAO方法delete()删除
1.3交往记录
跳转路径:
activities.do?
method=show
DAO方法PagingList()分页查询
使用者:
客户经理
相关操作:
新建,编辑,删除
使用到数据库表为cst_activity(交往记录表)相关命名actionActivityActionfromActivityFrom
1.3.1新建交往记录
添加交往记录跳转路径:
activitys.do?
Method=add
DAO方法save()添加
使用者:
客户经理
1.3.1.1添加一个客户交往记录时需要记录事件发生的日期、地点、概要和详细信息,还可以填写一个备注信息。
1.3.1.2填写正确后才能保存,否则跳回本页面显示相关错误信息
1.3.1.3提示保存成功或操作失败,保存成功跳回所有交往记录页面
1.3.2编辑交往记录
查找单个交往记录跳转路径:
activitys.do?
method=queryone
DAO方法queryone()查找单个
使用者:
客户经理
’*‘号为必填项,不能修改为空
1.3.2.1填写正确后才能保存,否则跳回本页面显示相关错误信息
1.3.2.2提示保存成功或操作失败,保存成功跳回所有交往记录页面
修改交往记录跳转路径:
activitys.do?
method=update
DAO方法update()修改
1.3.3删除交往记录
1.3.3.11.2.5.1提示删除成功跳回所有交往记录页面
删除交往记录跳转路径:
activitys.do?
method=delete
DAO方法delete()删除
1.4历史订单
1.4.1读取时只读取订单状态为“已发货”或“已回款”的数据(对应订单记录状态为5或6)。
1.4.2针对某一客户显示其全部已发货或已回款的历史订单,分页显示,最新的订单显示在前面。
需要在列表中显示订单的编号、下单日期、送货地址、订单状态。
使用到数据库表为orders(历史订单表)
历史跳转路径:
orders.do?
method=show
DAO方法PagingList()分页查询
使用者:
客户经理
1.4.3相关操作:
查看详情
使用数据库表为orders_line(订单明细表)
跳转路径:
ordersLine.do?
Method=show
DAO方法PagingList()分页查询
对每个订单可以查看明细。
在订单明细中需要显示订单的总金额。
使用者:
客户经理
1.5删除客户信息
只有登录的客户经理为该客户的客户经理才能删除该客户信息
数据库对应该用户信息的状态修改为2---非正常
删除用户跳转路径:
list.do?
method=update
DAO方法update()修改
2、客户流失管理
客户流失主页跳转路径:
lostList.do?
method=show
DAO方法PagingList()分页查询
点击查询调用MistinessPaginglist()模糊分页查询
系统自动检查超过6个月没有下单的客户,并在本系统中提出预警。
订单数据需要从销售系统中获得
使用者:
客户经理
相关操作:
暂缓流失,确定流失
但在确认流失前一定要采取措施“暂缓流失”。
使用数据库表为:
cst_lost(客户流失表)相关命名:
action
LostActionfromLostFrom
2.1暂缓流失
暂缓流失跳转:
lostList.do?
method=relay
DAO方法update()修改
使用者:
客户经理
添加暂缓流失措施
提示保存成功,系统保存每次追加的暂缓措施。
如果确是存在不可逆转的因素,客户不可能再购买本公司的产品,则确认该客户的流失。
确定流失跳转路径:
lostList.do?
method=confirm
DAO方法update()修改状态为2暂缓流失
2.2确定流失
使用者:
客户经理
填写流失原因保存
提示保存成功
确认客户流失后,该客户的状态修改为“已流失”。
DAO方法update()修改状态为3流失
3.3服务管理
图
处理流程
图
服务管理模块
客服经理可以新建一个服务,客服主管负责分配服务给某个客户经理,客户经理对其进行服务处理进行服务反馈,最后销售主管对服务进行归档保存。
服务管理模块的作用:
①服务创建:
就是新建服务项,客户服务是客户管理的重要工作。
通过客户服务我们的销售团队可以及时帮助客户解决问题、打消顾虑,提高客户满意度。
还可以帮助我们随时了解客户的动态,以便采取应对措施。
(由客服经理负责)
②服务分配:
由客服主管对新建服务项进行合理安排,分配后对服务状态进行修改。
③服务处理:
本部分由客服经理对已分配的服务项进行合理友善处理,并且保存好处理记录,修改服务项的处理状态。
④服务反馈:
本部分由客服经理查询到所有已处理的服务项,并且对服务项做进行满意度评分。
⑤服务归档:
客服经理和客服主管可以对已归档的服务进行查询、查阅。
1.1.3服务创建
1.1.3.1业务概述
客户服务是客户管理的重要工作。
通过客户服务我们的销售团队可以及时帮助客户解决问题、打消顾虑,提高客户满意度。
还可以帮助我们随时了解客户的动态,以便采取应对措施。
1.1.3.2使用者
客服经理
就是新建服务项,客户服务是客户管理的重要工作。
通过客户服务我们的销售团队可以及时帮助客户解决问题、打消顾虑,提高客户满意度。
还可以帮助我们随时了解客户的动态,以便采取应对措