【问题标题】:Zapier: How to send data to my Node.js web app from ScheduleOnce using ZapierZapier:如何使用 Zapier 从 ScheduleOnce 向我的 Node.js Web 应用程序发送数据
【发布时间】:2018-04-26 16:40:18
【问题描述】:

这是我的工作流程:

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

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

我认为使用 Code Javascript 功能会起作用,但事实并非如此。因此,我正在考虑使用 StoreClient 选项或 API。我只是对如何让流程工作以访问数据并自动填充下一个重定向页面上的字段感到困惑。

我们将不胜感激。

这是我的 Javascript 选项代码:

    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);

【问题讨论】:

    标签: zapier


    【解决方案1】:

    David 来自 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. 填充页面。我不确定目的地的性质是什么(最好的情况是它是您控制的服务器),但需要向store.zapier.com 发出 http 请求以检索存储的数据并将其显示在视图中。这很容易,如果
    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);
    

    希望这能为您指明正确的方向。您正在处理一个非常复杂的工作流程,但我敢打赌您可以做到!

    【讨论】:

    • 太好了,谢谢!所以我更新了我的 Zapier 代码如下:var customerInfo = {"firstName": inputData.firstName, "lastName": inputData.lastName, "email": inputData.email, "mobilePhone": inputData.mobilePhone, "otherPhone": inputData.otherPhone, "businessWebsite": inputData.businessWebsite};var store = StoreClient("T5@2qaifla");store.set(inputData.email, JSON.stringify(customerInfo)).catch(callback);。但是我继续收到 Zapier 的测试代码错误:-( 错误:您必须返回单个对象或对象数组。有什么想法吗?
    • 哦,对不起。您需要在某个地方致电callback(我总是忘记那部分)。所以在set 之后但catch 之前,添加.then(function(){ callback(null, {ok: true}) }) 让跑步者知道你已经完成并且一切正常。
    • 如果那是你真正的秘密,你会想要继续使用其他仍然是秘密的东西。 ?
    • 啊!美丽的!有效!是的,我的秘密实际上是一个非常秘密的秘密。所以现在可以了,要访问存储对象中的数据,我只需使用 API 调用 store.zapier.com/api/records?secret=12345&key=firstName&key=lastName&key=email&key=modilePhone&key=otherPhone&key=businessWebsite 也会出现去工作。所以在按钮重定向上,我需要在重定向 url 中设置 ?email=email@email.com 键正确吗?
    • 是的,表格需要一起发送信息!
    猜你喜欢
    • 2016-11-02
    • 2018-12-09
    • 2021-09-07
    • 2019-10-10
    • 2021-03-07
    • 2021-02-07
    • 2021-04-17
    • 2019-05-18
    • 2019-06-25
    相关资源
    最近更新 更多