添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

附加发行商

想要将应用程序发布到 Vtiger 市场? 通过使用 Publisher 打包您为应用程序所做的所有工作,可以轻松完成此操作。 这是步骤。

第一步 - 从以下位置注册开发者版帐户 点击此处 .

第一步 - 自定义以下内容:

  • 配置工作流、流程、自定义字段等。
  • 通过使用 API Designer 和 Module Designer 编写自定义代码进行扩展。

第一步 - 使用 Add-on Publisher 打包以下内容。

  • 工作流程
  • 流程
  • APIs
  • 模块
  • 字段
  • 模板等

第一步 - 通过在另一个 Developed Edition 帐户上安装进行测试。

第一步 - 注册 Vtiger 市场并发布以供批准。

第一步 - 您的扩展将在批准后发布。

备注 :您需要注册 Vtiger Marketplace 才能发布扩展。 此帐户不同于开发者版注册。 您可以使用此帐户从任何 Vtiger 开发者帐户构建和发布。

附加发行商

想要将应用程序发布到 Vtiger 市场? 通过使用 Publisher 打包您为应用程序所做的所有工作,可以轻松完成此操作。 这是步骤。

第一步 - 从以下位置注册开发者版帐户 点击此处 .

第一步 - 自定义以下内容:

  • 配置工作流、流程、自定义字段等。
  • 通过使用 API Designer 和 Module Designer 编写自定义代码进行扩展。

第一步 - 使用 Add-on Publisher 打包以下内容。

  • 工作流程
  • 流程
  • APIs
  • 模块
  • 字段
  • 模板等

第一步 - 通过在另一个 Developed Edition 帐户上安装进行测试。

第一步 - 注册 Vtiger 市场并发布以供批准。

第一步 - 您的扩展将在批准后发布。

备注 :您需要注册 Vtiger Marketplace 才能发布扩展。 此帐户不同于开发者版注册。 您可以使用此帐户从任何 Vtiger 开发者帐户构建和发布。

医生诊所使用 Vtiger CRM 创建、跟踪约会并发送患者提醒。 为此,他正在使用 Vtiger 事件模块,并希望在他诊所的监视器上显示这些约会。 所以当病人走进来时,他们可以看到预约队列。

该诊所有一个内部应用程序,可以存储约会详细信息并连接到监视器以显示它们。 当患者要求预约或安排预约时,CRM 代理将预约提供给事件模块。 此信息也需要传播到内部应用程序。

幸运的是,该应用程序具有可用于商店预约的 REST API。

使用我们的低代码平台,我们有很多方法可以解决这个问题。 让我们看看如何使用 VTAP JavaScript 解决这个问题的事件。

  • 在 Vtiger 中创建 API 以将约会发送到内部应用程序。
  • 在 Vtiger 中创建 CRM 事件记录时,订阅并收听 VTAP 事件。
  • 当 CRM 用户保存事件记录时调用 API。

步骤1: 要从 Vtiger 连接到任何外部应用程序,我们需要从 API 设计器模块 . 这可以使用 Menu > Platform > Api Designer > Create Rest API 来完成。

给个名字 创建_约会 . 并选择事件模块。

API XML结构如下:

  • 这是对 URL 的请求后调用。
  • Header 有一个与内部应用程序通信的秘密。
  • 参数具有其格式所需的数据。

医生诊所使用 Vtiger CRM 创建、跟踪约会并发送患者提醒。 为此,他正在使用 Vtiger 事件模块,并希望在他诊所的监视器上显示这些约会。 所以当病人走进来时,他们可以看到预约队列。

该诊所有一个内部应用程序,可以存储约会详细信息并连接到监视器以显示它们。 当患者要求预约或安排预约时,CRM 代理将预约提供给事件模块。 此信息也需要传播到内部应用程序。

幸运的是,该应用程序具有可用于商店预约的 REST API。

使用我们的低代码平台,我们有很多方法可以解决这个问题。 让我们看看如何使用 VTAP JavaScript 解决这个问题的事件。

  • 在 Vtiger 中创建 API 以将约会发送到内部应用程序。
  • 在 Vtiger 中创建 CRM 事件记录时,订阅并收听 VTAP 事件。
  • 当 CRM 用户保存事件记录时调用 API。

步骤1: 要从 Vtiger 连接到任何外部应用程序,我们需要从 API 设计器模块 . 这可以使用 Menu > Platform > Api Designer > Create Rest API 来完成。

给个名字 创建_约会 . 并选择事件模块。

API XML结构如下:

  • 这是对 URL 的请求后调用。
  • Header 有一个与内部应用程序通信的秘密。
  • 参数具有其格式所需的数据。
<url>https://IN-HOUSE-APP-ENDPOINT-FOR-APPOINTMENT-CREATION</url>         <headers>             <header name="secret" value="xxxxx"></header>         </headers>         <parameters>             <parameter name='CONTACT_NAME' value="@contact_name"></parameter>             <parameter name='APPOINTMENT_DATE' value="@app_date"></parameter>             <parameter name='APPOINTMENT_TIME' value="@app_time"></parameter>             <parameter name='LOCATION' value="@location"></parameter>         </parameters>     </rest>         <url>https://IN-HOUSE-APP-ENDPOINT-FOR-APPOINTMENT-CREATION</url>         <headers>             <header name="secret" value="xxxxx"></header>         </headers>         <parameters>             <parameter name='CONTACT_NAME' value="@contact_name"></parameter>             <parameter name='APPOINTMENT_DATE' value="@app_date"></parameter>             <parameter name='APPOINTMENT_TIME' value="@app_time"></parameter>             <parameter name='LOCATION' value="@location"></parameter>         </parameters>     </rest>

添加以上XML后,保存并发布。 这些 API 可以从外部(作为 REST API)调用到 CRM 中,使用 VTAP Javascript API .

备注 :对于要访问 API 的任何外部应用程序,必须首先从 API Designer > 设置 > 添加域将域列入白名单。 否则系统会因未经授权的域访问而抛出错误。

-------------------------------------------------- ------------------------------

第一步 : 现在,我们需要注册,这样我们才能收听 VTAP 事件。 为此,您需要使用模块设计器。 转到菜单 > 平台 > 模块设计器 > 事件模块并添加 TAP 脚本 > 脚本名称 (SendEvent)。

您需要使用 VTAP.Event.Register 来监听 Record Save 事件(当用户单击 Save 按钮时)。 这里是 名单 收听其他事件。

TAP脚本结构如下:

添加以上XML后,保存并发布。 这些 API 可以从外部(作为 REST API)调用到 CRM 中,使用 VTAP Javascript API .

备注 :对于要访问 API 的任何外部应用程序,必须首先从 API Designer > 设置 > 添加域将域列入白名单。 否则系统会因未经授权的域访问而抛出错误。

-------------------------------------------------- ------------------------------

第一步 : 现在,我们需要注册,这样我们才能收听 VTAP 事件。 为此,您需要使用模块设计器。 转到菜单 > 平台 > 模块设计器 > 事件模块并添加 TAP 脚本 > 脚本名称 (SendEvent)。

您需要使用 VTAP.Event.Register 来监听 Record Save 事件(当用户单击 Save 按钮时)。 这里是 名单 收听其他事件。

TAP脚本结构如下:

var Events_Component_SendEvent = VTAP.Component.Core.extend({

// created funtion is the entry point for any TAP Script

created(){

// Register for new record

VTAP.Event.Register('RECORD_CREATED',(module,record) => {

if(module == 'Events'){

let contactName = (record.contact_id && record.contact_id[0]) ? record.contact_id[0].label : 'No Name';

}

let params = {

contactName : contactName,

appointment_date : record.date_start,

appointment_time : record.time_start,

location : record.location

}

// Call the API created from API Desginer using VTAP.CustomApi.Post API

VTAP.CustomApi.Post('create_appointment',params,(error,success) => {

if(success){

VTAP.Utility.ShowSuccessNotification():

}

else{

let errorMsg = (error.message) ? error.message : error;

VTAP.Utility.ShowErrorNotification(errorMsg)

}

})

})

}

})

var Events_Component_SendEvent = VTAP.Component.Core.extend({

// created funtion is the entry point for any TAP Script

created(){

// Register for new record

VTAP.Event.Register('RECORD_CREATED',(module,record) => {

if(module == 'Events'){

let contactName = (record.contact_id && record.contact_id[0]) ? record.contact_id[0].label : 'No Name';

}

let params = {

contactName : contactName,

appointment_date : record.date_start,

appointment_time : record.time_start,

location : record.location

}

// Call the API created from API Desginer using VTAP.CustomApi.Post API

VTAP.CustomApi.Post('create_appointment',params,(error,success) => {

if(success){

VTAP.Utility.ShowSuccessNotification():

}

else{

let errorMsg = (error.message) ? error.message : error;

VTAP.Utility.ShowErrorNotification(errorMsg)

}

})

})

}

})