代码之家  ›  专栏  ›  技术社区  ›  ParkerWilliams

Zapier:如何将数据发送到我的节点。使用Zapier从ScheduleOnce创建js web应用程序

  •  0
  • ParkerWilliams  · 技术社区  · 8 年前

    这是我的工作流程:

    1. 人员单击我的ScheduleOnce链接并安排会议
    2. 完成ScheduleOnce预订表单后,该人员单击“完成”按钮
    3. 单击此“完成”按钮后,此人将重定向到显示应用程序页面的Node JS web应用程序。此应用程序页面需要使用ScheduleOnce页面中的信息自动填充。

    在第2步和第3步之间,Zapier发挥了作用。我正试图使用Zapier从ScheduleOnce预订中捕获数据,事实就是这样。然后,我尝试使用Zap将数据发送到用户被重定向到的页面,以自动填充一些字段。

    我认为使用代码Javascript功能可以工作,但实际上不行。然后我考虑使用StoreClient选项或API。我只是对如何让流工作来访问数据和自动填充下一个重定向页面上的字段感到困惑。

    非常感谢您的帮助。

        var store = StoreClient("Secret");
        store
            .setMany({firstName: inputData.firstName, lastName: inputData.lastName, email: inputData.email, mobilePhone: inputData.mobilePhone, otherPhone: inputData.otherPhone, businessWebsite: inputData.businessWebsite})
            .then(function() {
                return store.getMany('firstName', 'lastName', 'email', 'mobilePhone', 'otherPhone', 'businessWebsite');
            })
            .then(function() {
                callback();
            })
            .catch(callback);
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   xavdid    8 年前

    大卫,来自Zapier平台团队。这是一个很酷的用例,可能是可行的。您需要记住的是,Zapier完全独立于用户运行,因此交互必须是间接的。Zapier无法将用户重定向到任何地方,它只能存储数据以响应按钮的按下。

    在你的情况下,你可以跳过 setMany ,因为您没有尝试使用zap中的值;您只需要存储它们(并验证操作是否已完成且没有错误)。

    var store = StoreClient("Secret");
        store
            .setMany({firstName: inputData.firstName, lastName: inputData.lastName, email: inputData.email, mobilePhone: inputData.mobilePhone, otherPhone: inputData.otherPhone, businessWebsite: inputData.businessWebsite})
            .catch(callback);
    

    1. 速度 . 用户将在zap完成之前到达您的登录页(因为它必须进行几次HTTP往返并执行代码)。你想给他们播放3秒钟的加载gif,或者放一条等待的消息,让他们刷新目的地
    2. 填充页面 . 我不确定目的地的性质是什么(最好的情况是它是您控制的服务器),但需要向它发出http请求 store.zapier.com 检索存储的数据并将其显示在视图中。这很容易,如果
    3. 识别用户 . 您需要某种方法来识别被重定向到存储在StoreClient中的数据的用户。如果两个用户连续快速填写表单,则第二个用户当前将覆盖第一个用户。此外,它似乎是半敏感数据,你不只是想让你的网站上的任何人都可以使用。为此,您可能希望将所有数据存储为由用户的电子邮件(或其他独特的内容)键入的JSON字符串。这样,当我(用户)完成表单时,我会被重定向到 yoursite.com/landing?email=david@zapier.com ,后端知道要查找( david@zapier.com 键),并可以使用正确的信息渲染视图。

    var store = StoreClient("Secret");
        store
            .set(inputData.email, JSON.stringify({firstName: inputData.firstName, lastName: inputData.lastName, email: inputData.email, mobilePhone: inputData.mobilePhone, otherPhone: inputData.otherPhone, businessWebsite: inputData.businessWebsite}))
            .catch(callback);
    

    希望这能为你指明正确的方向。你正在处理一个相当复杂的工作流,但我敢打赌你一定能做到!