自動化
自動化では、Zoho Billing の各タブに対してルールを作成し、そのルールに基づいて適切な処理を自動で実行できます。たとえば、1000ドルを超える見積書が顧客に承認されたときに、チームメンバーへお祝いメールを自動送信する、といった使い方ができます。
このあと、次の内容について説明します。
- ワークフローの作成と概要の設定
- ワークフローを実行するタイミングの設定
- ワークフローを実行する条件の設定
- メール通知や Webhook などの処理をワークフローに関連付ける
- Webhook を使用して外部の Web サービスプロバイダーと連携する
ワークフローのシナリオ
Zoho Billing では、ワークフローを使うことで、さまざまな処理を自動化できます。以下は、ワークフローが役立つ代表的なシナリオです。
メモ:顧客の作成処理をトリガーとして設定したワークフロー処理(メール通知、Webhook、カスタム関数など)は、ホスト型決済ページからサインアップした新規顧客や、API を通じてサブスクリプションと同時に作成された顧客には実行されません。
メール通知のシナリオ
シナリオ 1
Dillion Inc. は衣料品の輸出会社です。営業担当の VP は、従業員が主要顧客向けに 10,000 ドルを超える金額の見積書を作成したときに、メール通知を受け取りたいと考えています。これにより、最適なサービスを提供しやすくなります。この場合、次の条件を満たしたときにメール通知が自動送信されるよう、ワークフローを設計できます。
実行タイミング: 作成時
ルール条件: 合計金額が 10,000 ドルより大きい
即時処理: 営業/経理チームの VP へのメール通知
時間ベースの処理: なし
シナリオ 2
新規リードが自宅またはオフィスのセキュリティソリューションに関する問い合わせフォームに入力したとき、Greg はすぐに歓迎メールが送信されるようにしたいと考えています。
実行タイミング: 作成時
ルール条件: 連絡先種別が「リード」の場合
即時処理: 歓迎メッセージ、会社紹介、相談予約用リンクを含むメール通知を送信
時間ベースの処理: なし
シナリオ 3
オンライン書店 Bookworm.com の CTO である Joseph は、顧客からの注文に対して請求書が作成された際に、梱包担当部署へ注意喚起のメッセージが送信される仕組みを導入したいと考えています。メール通知機能を使うことで、次のパラメーターでワークフロールールを作成し、この要件を実現できます。
実行タイミング: 作成時または編集時
ルール条件: 連絡先名が XYZ の場合
即時処理: なし
時間ベースの処理: 請求書作成時に梱包担当部署へメール通知
Webhook のシナリオ
シナリオ 1:
Greg はホーム&オフィスセキュリティ会社の広報マネージャーです。初めての顧客から、ボストンのオフィスにセキュリティシステムを導入するための見積依頼がありました。Greg は、見積書を承諾したタイミングで、すぐに「ありがとうございました」という SMS を送信して良い印象を与えたいと考えています。自動化の Webhook 機能を使えば、次のパラメーターを設定し、SMS 決済サービスと連携することでこれを実現できます。
実行タイミング: 作成時または編集時
ルール条件: 連絡先名が「XYZ」かつ連絡先種別が「顧客」の場合
即時処理: SMS 決済サービスと連携した Webhook による SMS 通知
時間ベースの処理: なし
シナリオ 2:
Frank は証券仲介会社の財務管理者です。会社の売上の大半は、会社の公式 Stripe アカウントに入金されます。彼は、そのアカウントに対して 10,000 ドル以上の高額な入金または請求書・経費に対する出金があった場合に、毎週メールまたは SMS で通知を受け取りたいと考えています。これを実現するために、次のパラメーターで Webhook を設定できます。
実行タイミング: 作成時または編集時
ルール条件: 合計金額が 10,000 ドル以上の場合
即時処理: なし
時間ベースの処理: ルールのトリガー日から 7 日後にメール通知を送信
カスタム関数のシナリオ
シナリオ 1:
請求書の合計が 2,500 ドルを超えた場合に 10% の割引を適用する
Sarah はスーパーマーケットを経営しており、店舗の 10 周年を記念して割引を提供したいと考えています。彼女は、2,500 ドル以上の購入をしたすべての顧客に 10% の割引を提供することにしました。請求書を作成するたびに割引を手動で追加するのは手間がかかります。
カスタム関数を利用すれば、この処理を実行する簡単なコードを記述できます。
Sarah は、「請求書の合計が 2,500 ドルを超えた場合に関数を実行し、10% の割引を適用する」という条件を設定できます。
このシナリオにおけるカスタム関数の例は次のとおりです。
カスタム関数名: 割引
説明: 請求書の合計が 2,500 ドルを超えた場合に 10% の割引を適用する
タブ: 請求書
Script:
//create a variable and get invoice total
total = invoice.get("total").toDecimal();
orgID = organization.get("organization_id").toString();
invoiceID = invoice.get("invoice_id").toLong();
//set a condition: when invoice amount is >= 2500
if ( total >= 2500.00 )
{
adjustment = invoice.get("adjustment").toDecimal();
adjustment = adjustment - total * 0.10;
jsonMap = Map();
jsonMap.put("adjustment", adjustment);
jsonMap.put("reason", "discount");
// To update the current record
result = zoho.invoice.update("invoices", orgID, invoiceID, jsonMap);
info result.toMap().get("message") ;
}
その後、Sarah は次のパラメーターでワークフロールールを作成します。
ワークフロールール名: Anniversary 割引
タブ: 請求書
ワークフロー種別: イベントベース
請求書のタイミング: 作成時
トリガー条件: 合計 >= 2500
処理: カスタム関数 - 割引
これにより、請求書の合計が 2,500 ドル以上になった場合、ワークフローが実行され、カスタム関数が実行されます。
シナリオ 2:
請求書が期限切れになったときに 5% の延滞料金を追加する
Dennis はマンハッタンでセルフストレージ施設を運営しており、顧客は書類を保管できる小さな箱から高級乗用車を保管できる大きな箱まで、さまざまなサイズのボックスを利用できます。彼は顧客に対し、日次・週次・月次・年次など、さまざまな支払いサイクルを提供しています。請求書日から 10 日間の猶予期間を設け、それを過ぎた場合は請求金額の 5% を延滞料金として請求します。
Zoho Billing では、カスタム関数を使って簡単なコードを記述し、請求書が期限切れになったときに延滞料金を自動計算して、請求書の調整額として追加できます。
このシナリオにおけるカスタム関数の例は次のとおりです。
カスタム関数名: Latefee
説明: 請求書金額に対して 5% の延滞料金を適用する
タブ: 請求書
Script:
//create a variable to get invoice total and add a 5% discount
latefee = invoice.get("total").toDecimal() * 0.05;
orgID = organization.get("organization_id").toString();
invoiceID = invoice.get("invoice_id").toLong();
//display the value stored in the latefee variable
info latefee;
//add late fee and adjustment and store the total amount in the variable 'adjustment'
adjustment = invoice.get("adjustment").toDecimal() + latefee;
jsonMap = Map();
jsonMap.put("adjustment",adjustment);
jsonMap.put("reason","Late fee");
// To update the current record
result = zoho.invoice.update("invoices",orgID,invoiceID,jsonMap);
info result.toMap().get("message");
その後、Dennis は次のパラメーターでワークフロールールを作成します。
ワークフロールール名: 遅延損害金
タブ: 請求書
ワークフロー種別: 日付ベース
実行日: 期日から 0 日後
実行時刻: 実行する時刻を入力
実行回数: 1 回
トリガー条件: ステータス が 支払い済み ではない AND ステータス が 一部支払い済み ではない場合
処理: カスタム関数 - Latefee
これにより、請求書の期日がワークフロールールで設定した日付を過ぎると、ワークフローが実行され、カスタム関数が実行されます。
シナリオ 3:
請求書の支払いが期日前に行われた場合に割引を適用する
Donna は、Web サイト向けの販促資料を月次で制作するデザイン会社を経営しています。パンフレット、バナー広告、その他の販促物のデザインを行っています。Donna は毎月末に請求書を送付していますが、支払いサイト(30 日)を過ぎてから入金されることが多く、資金回収を早めるため、請求書金額が期日前に支払われた場合に割引を提供することにしました。
この運用のために、Donna は請求書に 5% の割引を設定し、顧客メモ欄に「期日前に支払いが行われた場合のみ割引が適用される」旨を記載します。
これを実現するために、Donna は次のカスタム関数を作成します。
//if payment for the invoice is received after the invoice due date then discount won't be applied
orgID = organization.get("organization_id").toString();
invoiceID = invoice.get("invoice_id").toLong();
jsonMap = Map();
jsonMap.put("discount", 0);
jsonMap.put("reason", "reached due date.");
result = zoho.invoice.update("invoices", orgID, invoiceID, jsonMap);
info result.toMap().get("message") ;
作成が完了したら、このカスタム関数を実行するためのワークフローを作成します。ワークフロールールのパラメーターは次のとおりです。
ワークフロールール名: 早期支払い割引
タブ: 請求書
ワークフロー種別: 日付ベース
実行日: 期日 から 0 日後
実行時刻: 実行する時刻を入力
実行回数: 1 回
トリガー条件: ステータス が 支払い済み ではない場合
処理
種別: カスタム関数、名前: 作成したカスタム関数の名前
これにより、請求書が期日に達した時点でワークフローが実行され、カスタム関数によって、本来の 5% 割引ではなく 0% の割引が適用されます。
シナリオ 4:
カスタム項目で入力されたイベント日から 30 日前を請求書の期日に自動設定する
Tom はクリエイティブなウェディングフォトグラファーです。顧客は結婚式の日付(イベント日)の 2〜3 か月前に Tom のサービスを予約します。Tom は、結婚式の 30 日前までに全額支払いが完了した場合にのみ日程を確定します。このプロセスを効率化するため、スタジオメンバーの Jake がカスタム関数を作成します。
まず Jake は、「Wedding 日付」という名前で日付型のカスタム項目を作成し、次のカスタム関数を記述します。
orgID = organization.get("organization_id").toString();
invoiceID = invoice.get("invoice_id").toLong();
customFieldList = invoice.get("custom_fields").toList();
cfDate = null;
for each customField in customFieldList
{
customFieldMap = customField.toMap();
if(customFieldMap.get("label") == "Date")
{
cfDate = customFieldMap.get("value");
break;
}
}
duedate = cfDate.toTime().subMonth(1);
info duedate;
duedate = duedate.year() + "-" + text(duedate.month(),"00") + "-" + text(duedate.day(),"00");
jsonMap = Map();
jsonMap.put("due_date", duedate);
jsonMap.put("reason", "Auto due date.");
result = zoho.invoice.update("invoices", orgID, invoiceID, jsonMap);
info result.toMap().get("message");
カスタム関数を作成した後、Jake はこれをトリガーするワークフロールールを作成します。ワークフロールールのパラメーターは次のとおりです。
ワークフロー名: 結婚式の 30 日前までに支払い
タブ: 請求書
ワークフロー種別: イベントベース
請求書のタイミング: 作成時
処理
種別: カスタム関数、名前: 作成したカスタム関数の名前
請求書を作成する際に、Tom がカスタム項目に結婚式の日付を入力すると、ワークフローが実行され、カスタム関数によって請求書の期日が結婚式の 30 日前に自動設定されます。
シナリオ 5:
作成から 10 日以内に承認されなかった見積書を自動的にキャンセルする
Katherine は、自動車整備工場向けに自動車部品を供給する会社を経営しています。多くの顧客が見積を依頼しますが、中には見積を承諾も却下もせず、返答がないままのケースがあります。これを避けるため、Katherine は、見積書の受領から 10 日以内に顧客からの返答がない場合、その見積書を却下することにしました。この運用を実現するため、次のカスタム関数を作成します。
//get quote and organization ID
quoteid = quote.get("quote_id");
orgid = organization.get("organization_id");
//convert the status of the quote to 'declined'
result = invokeUrl
[
url: "https://billing.zoho.com/api/v3/quotes/" + quoteid + "/status/declined?organization_id=" + orgid
type: POST
connection: "billing_api_connection"
];
このカスタム関数を実行するために、Katherine は次のパラメーターでワークフロールールを作成します。
ワークフロー名: 見積受領から 10 日後に却下
タブ: 見積書
ワークフロー種別: 日付ベース
実行日: 作成日時 から 10 日後
実行時刻: 実行する時刻を入力
実行回数: 1 回
条件: 見積ステータス が 送信済み かつ 見積ステータス が 承認済み ではない場合
処理
種別: カスタム関数、名前: 作成したカスタム関数の名前
これにより、見積書の作成日時から 10 日を過ぎるとワークフローが実行され、カスタム関数によって見積書のステータスが「却下済み」に変更されます。
シナリオ 6:
顧客が請求書金額の 50% を初回の期日までに支払った場合、期日を 7 日延長する
Diane は、オフィス向けの印刷用紙や文房具を販売する店舗を経営しており、地域のオフィスに商品を供給しています。彼女は、顧客が請求書金額の 50% を初回の期日までに支払った場合、請求書の期日を 1 週間延長したいと考えています。
これを実現するために、次のカスタム関数を作成します。
//Getting invoice total, balance after the partial payment, and due date
inv_total = invoice.get("total").toDecimal();
inv_balance = invoice.get("balance").toDecimal();
inv_duedate = invoice.get("due_date").toDate();
orgid = organization.get("organization_id").toString();
invid = invoice.get("invoice_id").toLong();
//Condition to check if the amount paid is 50% of the invoice amount
if(inv_balance == inv_total / 2)
{
inv_duedate = inv_duedate.addDay(7);
inv_duedate = inv_duedate.year() + "-" + text(inv_duedate.month(),"00") + "-" + text(inv_duedate.day(),"00");
//Update the due date by 7 days
jsonMap = Map();
jsonMap.put("due_date", inv_duedate);
jsonMap.put("reason", "Increased due date");
result = zoho.invoice.update("invoices", orgid, invid, jsonMap);
info result.toMap().get("message") ;
}
作成が完了したら、Diane はこのカスタム関数を実行するワークフロールールを作成します。
ワークフロー名: 期日の延長
タブ: 請求書
ワークフロー種別: イベントベース
請求書のタイミング: 編集時
ワークフローの実行条件: いずれかの項目が更新されたとき
実行頻度: 1 回のみ
トリガー条件: ステータス が 一部支払い済み の場合
種別: カスタム関数、名前: 作成したカスタム関数の名前
これにより、顧客が初回の期日までに請求書金額の 50% を支払った場合、残額の支払いに対して 7 日間の猶予が与えられます。
アプリ内通知のシナリオ
シナリオ 1:
KYZ シューズカンパニーは、自社から購入したすべての顧客にノベルティを提供することにしました。請求書が支払い済みになるたびに、経理チームがノベルティを発送できるよう通知を受け取る必要があります。そのため、請求書のステータスが「支払い済み」に変更されたときに、経理チームにアプリ内通知が送信されるワークフローを作成します。
- 実行タイミング: 作成時または編集時
- ルール条件: ステータスが支払い済みに変更されたとき
- 即時処理: 経理チームへのアプリ内通知
- 時間ベースの処理: なし
シナリオ 2:
Peter は ABC 組織の責任者です。貸方メモが作成されるたびに、生産部門の責任者へ通知を送りたいと考えています。これにより、生産チームは自部門の課題を把握し、サービスの改善に役立てることができます。そのため、生産部門に通知を送信するワークフローを作成します。
- 実行タイミング: 作成時
- ルール条件: なし
- 即時処理: 生産部門責任者への通知
- 時間ベースの処理: なし
新規ワークフロールールの設定
ワークフロールールは、メール通知や Webhook など、タスクの実行に必要な処理で構成されます。1 つのワークフロールールで、1 つまたは複数の処理を組み合わせてタスクを自動化できます。Zoho Billing でワークフロールールを設定するには、設定 > 自動化 > ワークフロールール に移動します。
ワークフローに名前を付ける
| 項目 | 説明 |
|---|---|
| ワークフルールール名 | ワークフロールールに一意の名前を付けます。 |
| タブ | ワークフローを作成したいタブを選択します。 |
| 説明 | ワークフロールールの簡単な説明を入力します。 |
ワークフローの実行タイミングを選択する
以下の項目で選択するパラメーターに基づいて、ワークフローをいつ実行するかを選択できます。
ワークフローの種類
ワークフローには 2 種類あります:
- イベントベース
- 日付ベース
イベントベース:
ワークフローがイベントベースの場合、タブが次のいずれかの操作をされたときにワークフローが実行されます。
- 作成
- 編集
- 作成または編集
- 削除
タブが編集または作成または編集の場合、追加の項目が表示されます。
| 項目 | 説明 |
|---|---|
| ワークフローを実行するタイミング | 選択できる設定は 3 つあります。 - 任意の項目が更新されたとき - 選択したいずれかの項目が更新されたとき - 選択したすべての項目が更新されたとき ドロップダウンで選択したいずれかの項目が更新されたときまたは選択したすべての項目が更新されたときを選択すると、タブの任意の 3 項目を選択できる追加のボックスが表示されます。 |
| 1 回のみか、毎回か | 1 回のみ:条件が初めて満たされたときにのみ、ワークフローが実行されます。 毎回:条件が満たされるたびに、ワークフローが実行されます。 |
日付ベース:
ワークフローが日付ベースの場合、次の項目が表示されます。
| 項目 | 説明 |
|---|---|
| 実行日 | ドロップダウンからタブ日付、期限日、または作成日時を基準にして、その前または後の任意の日数でワークフローを実行するように選択します。 |
| 実行時間 | 組織のタイムゾーンに合わせて、該当する時(hh)または分(mm)を選択し、正確な実行時間を指定できます。 |
| 実行頻度 | ドロップダウンから1 回、毎月、毎年を選択して、ワークフローの実行頻度を指定できます。 |
トリガーの絞り込み
トリガーの絞り込みセクションでは、アクションを実行する条件を 1 つ以上設定できます。
| 項目 | 説明 |
|---|---|
| 条件 | 設定した条件に基づいてフィルターが実行されます。+ 条件を追加をクリックして、複数の条件を追加することもでき、その条件に基づいてワークフロールールが実行されます。 次の条件との関係は、両方を満たす場合はAND、いずれかを満たせばよい場合はORを選択します。また、条件パターンを変更を選択して、条件パターンを任意の形に変更できます。 |
| 項目属性 | タブに関連する条件を大まかに分類したリストから属性を選択するための項目です。 |
| ルール | システムがトリガーをどのようにフィルターするかのルールを選択します。 |
| 値フィールド | フィルターを適用する属性の値を入力します。 |
条件パターンの編集:
条件パターンを変更を選択して、要件に合わせて条件パターンを編集できます。エディターでは、シンプルな AND/OR ロジックを使って任意のパターンを定義できます。例えば、ワークフロールールを「見積番号が 1 かつ、見積ステータスが請求済みではない、または合計が 500 と等しい」ときに実行したい場合、
パターンは (((1) AND 2) OR 3) となります。条件パターンが要件に合わない場合は、(1 AND (2 OR 3)) のように編集できます。
保存をクリックして続行します。
メモ:各ワークフロールールには、最大 10 個の条件を設定できます。
アクション
ルールを設定したら、条件に該当したときに実行するアクションを決めます。アクションは自社のニーズに合わせてカスタマイズでき、即時に実行することも、特定の時間に実行するようスケジュールすることもできます。
即時アクション:
| 項目 | 説明 |
|---|---|
| 種類 | 次の 3 種類のアクションから 1 つを選択します。 - メールアラート - Webhook + 新しいアクションを追加をクリックして、複数のアクションを追加することもできます。 |
| 名前 | メールアラートまたは Webhook の名前を入力します。例えばメールアラートの場合、既に作成済みのものをリストから選択するか、+ 新しいメールアラートを追加を選択して新規作成できます。 Webhook についても同様の手順で設定します。 |
| 詳細 | アクションの詳細がここに表示されます。 |
時間ベースのアクション:特定の時間にアクションを実行したい場合は、時間ベースのアクションを追加しますか?のチェックボックスを選択します。すると、希望する時間を入力するための追加項目が表示されます。
| 項目 | 説明 |
|---|---|
| 実行時間 | 次のいずれかの日付の前または後の希望する日数を入力します。 - ルールのトリガー日 - タブ日付 - 期限日 - 作成日時 - 更新日時 |
次に、実行したいアクションの種類を選択します。メールアラート、項目の更新、Webhook のいずれかを選択できます。+ 新しい時間ベースアクションを追加を選択して、複数の時間ベースアクションを追加することもできます。
メモ:時間ベースアクションは最大 5 つまで追加できます。また、各時間ベースアクションには最大 5 個のアクションを設定できます。
最後に、保存をクリックしてワークフロールールを作成し、Zoho Billing のタブに適用します。
その他のアクション
ワークフロールールは有効または無効に設定できます。設定するには、ルール上にカーソルを合わせて、有効にするまたは無効にするを選択します。ワークフロールールを削除するには、ごみ箱アイコンをクリックします。
ワークフロールールの編集:リスト内のワークフロールールをクリックするか、ルール上にカーソルを合わせて編集を選択すると、ワークフロールールを編集できます。
ワークフロールールの絞り込み:ワークフロールールの一覧を絞り込むには、次の手順を実行します。
- 設定> 自動化> ワークフロールール に移動します。
- タブの下で、ドロップダウンから 1 つのタブを選択し、そのタブに対して作成されたワークフローに基づいて絞り込みます。
また、有効か無効かに基づいてワークフロールールを絞り込むこともできます。選択内容に応じて、該当するワークフロールールが一覧表示されます。
メモ:各タブにつき、最大 10 個のワークフロールールを作成できます。
インポートされた請求書には、ワークフロールールを適用できません。
メールアラート
ここでは、Zoho Billing の任意のタブに対してメールアラートを設定する手順を説明します。
新しいメールアラートの作成:
メールアラートを設定するには:
- 設定 > 自動化 > メールアラート に移動し、+ 新しいメールアラートをクリックします。
- メールアラート作成ページで、次の項目を入力します。
| 項目 | 説明 |
|---|---|
| 名前 | メールアラートに一意の名前を付けます。 |
| タブ | メールアラートを作成したいタブを選択します。 |
| メールテンプレート | ドロップダウンからテンプレートを選択するか、新しく作成する場合は+ 新しいメールテンプレートを追加をクリックします。 |
| メール受信者 | メールアラートを送信したい顧客を、ドロップダウンから選択します。 |
| 追加の受信者 | 他の人にもメールアラートを送信したい場合は、メールアドレスをカンマ区切りで入力します。最大 10 件まで追加の受信者を指定できます。 |
- 保存をクリックして新しいメールアラートを作成します。これで、ドロップダウンから作成済みのメールアラートのいずれかを選択し、ワークフローが実行されたときに通知を受け取ることができます。
メールアラートでのその他のアクション
メールアラートの削除:
メールアラートを削除するには:
- 設定 > 自動化 > メールアラート に移動します。
- 一覧のメールアラートの上にカーソルを合わせ、削除アイコンをクリックします。
メールアラートの絞り込み:
メールアラート一覧を絞り込むには:
- 設定 > 自動化 > メールアラート に移動します。
- タブの下で、メールアラートが作成されているタブをドロップダウンから選択します。
選択内容に応じて、該当するメールアラートが一覧表示されます。
メモ:各ワークフロールールにつき、最大 5 件のメールアラートを作成できます。
1 日あたり最大 500 件のメールアラートを実行できます。
Webhook
Webhook を使用すると、Zoho Billing でイベントが発生したときに、即時の Web 通知を送信してサードパーティアプリケーションと連携できます。Webhook では HTTP および HTTPS の URL を設定し、それらをワークフロールールに関連付けて、通知プロセスを自動化できます。
Webhook の一般的な情報については、webhooks.org を参照してください。
Webhook を作成する
Webhook を設定するには:
- 設定> 自動化 に移動します。
- Webhook を選択します。
- + 新しい Webhook をクリックします。
新しい Webhook ページで、次の詳細を入力します。
- 名前項目に、Webhook の名前を入力します。
- タブ項目の横にあるドロップダウンから、Webhook を作成したいタブを選択します。
- 必要に応じて、説明項目に Webhook の説明を追加します。
URL & パラメーター項目で、HTTP メソッドを選択し、サードパーティアプリケーションの URL を入力します。Zoho Billing で利用可能な HTTP メソッドは次のとおりです。
- Post: 送信されるデータを新規として扱うよう要求します。
- Put: 送信されるデータを、既存データの更新版として扱うよう要求します。
- Delete: データを削除するよう要求します。
Insight:You can also add additional query parameters by clicking **Add Parameters** and entering the required values in the **Key** and **Value** fields. You can add custom parameters like Auth Token, Security Token, API Key, etc.Webhook を保護したい場合は、I want to secure this Webhook チェックボックスをオンにします。シークレットトークン項目にシークレットキーを入力します。これにより、Webhook が Zoho Billing から送信されたかどうかを検証できます。英数字で、12~50 文字の範囲である必要があります。
メモ:You cannot edit or view the secret token later.メモ: The secret token will be used to compute a hash value, so, you will have to ensure that the same token is available on your server to compute a similar hash value.ヘッダーセクションでは、HTTP リクエストに含めたい追加情報を指定できます。追加のヘッダーを設定する場合は、+ 新しいヘッダーを追加をクリックします。
認証タイプセクションで、Webhook をどのように認証するかを選択します。
- セルフ認証: 認証情報を手動で入力して Webhook を設定する場合に選択します。
- 外部連携: 接続(コネクション)を使用して Webhook を設定する場合に選択します。
本文セクションで、データの送信方法を選択します。デフォルトペイロード、x-www-form-urlencloded、Raw データ本文パラメーターから選択できます。
- デフォルトペイロード: デフォルトペイロード形式では、タブに関連付けられているすべてのパラメーターが、application/json 形式のコンテンツタイプでリクエスト本文に送信されます。
- x-www-form-urlencoded: x-www-form-urlencoded 形式では、データがエンコードされてサーバーに送信されます。
- Raw データ: Raw データ形式では、リクエスト本文に送信するパラメーターを選択できます。コンテンツタイプは application/json になります。
Webhook が正しく動作するか確認するには、保存して実行をクリックします。後で実行する場合は、保存をクリックします。
メモ:Webhook を設定すると、Zoho Billing 組織内のすべての顧客情報(名前、電話番号、住所、メールアドレス)が、通知先として指定した URL に共有されます。
Webhook を保護する
Webhook を保護すると、その Webhook が Zoho Billing から送信されたものであることを検証できます。そのためには、Zoho Billing からの Webhook を受信できるようにサーバーを設定する必要があります。サーバーが Zoho Billing からの Webhook を受信したら、ペイロードとシークレットトークンに基づいてハッシュ値を生成します。生成後、そのハッシュ値が Zoho Billing から送信されたハッシュ値と一致するかを確認し、Webhook の送信元を検証します。これにより、Zoho Billing から送信されたように見せかける第三者の Webhook をサーバー側で無視できるため、セキュリティレイヤーを追加できます。
Webhook を検証する
サーバーが Webhook を受信したら、Zoho Billing と同じ方法でペイロードのハッシュ値を生成する必要があります。同じハッシュ値を生成して Webhook を検証するためです。
ハッシュ値の生成には、次のパラメーター(利用可能な場合)が使用されます。
- クエリ文字列パラメーター
- デフォルトペイロードまたはカスタマイズされた Raw JSON ペイロード
- x-www-form-urlencoded ペイロード(キーと値のペア)
ペイロードのキーと値のペアをキー名のアルファベット順に並べ替え、文字列を構成します。
- Webhook にクエリ文字列パラメーターが含まれる場合は、そのキーと値のペアもペイロードのキーと値のペアと合わせてアルファベット順に並べ替えます。
- キーと値のペアの間にスペースを入れないでください。
キーと値のペアを並べ替えて文字列を構成したら、その末尾に Raw JSON を連結します。
例
1. デフォルトペイロード
クエリ文字列パラメーターのキーと値のペア:
subscription\_id=90343, name=basic
デフォルトペイロード / Raw JSON:
{"created\_date":"2023-10-11","event\_id":"5675"}
構成される文字列は次のようになります。
namebasicsubscription\_id90343{"created\_date":"2023-10-11","event\_id":"5675"}
2. x-www-form-urlencoded
クエリ文字列パラメーターのキーと値のペア:
customer\_name=Brandon, status=active
x-www-form-urlencoded ペイロードのキーと値のペア:
addon\_description=Monthly addon, quantity=1
構成される文字列は次のようになります。
addon\_descriptionMonthly addoncustomer\_nameBrandonquantity1statusactive
アドバイス
- ペイロードに x-www-form-urlencoded 形式が含まれる場合は、ハッシュ値を生成する前に、文字列全体をデコードする必要があります。
- キーと値のペアのいずれかにスペースが含まれる場合は、そのスペースも構成される文字列に含める必要があります。
この文字列に対して、Zoho Billing で使用したシークレットトークンとともに HMAC-SHA256 アルゴリズムを適用することで、ハッシュ値を計算できます。
その後、サーバー側で計算したハッシュ値が、Zoho Billing から送信された Webhook のヘッダー(X-Zoho-Webhook-Signature)に含まれるハッシュ値と一致するかを確認して、Webhook を検証できます。
SMS ゲートウェイの設定
Webhook を設定して、SMS ゲートウェイ経由でメッセージアラートを送受信できます。必要なのは、URL を使って SMS ゲートウェイを設定し、以下の手順に従うことだけです。
Bulk SMS
Bulk SMS は世界中で 800 社以上のモバイルネットワークプロバイダーに対応した、一般的な SMS 決済サービスです。
URL: https://##PROTECTED_0##
Bulk SMS 用の URL を設定するには:
- 設定> 自動化> Webhook に移動します。
- + 新しい Webhook をクリックします。
- 上記の URL を 通知先 URL にコピーします。
- URL 内の %ユーザー名% と %パスワード% プレースホルダーを、Bulk SMS アカウントのユーザー名とパスワードに置き換えます。
- URL の末尾、つまり「message=」の後にメッセージ本文を入力します。
- メッセージ本文内の空白はすべて %20 に、カンマはすべて %2C に置き換えます。
メモ: メッセージの内容に他の句読点が含まれている場合は、このウェブサイトを使って、それらを修飾子に置き換える方法を確認できます。ただし、メッセージの構文上必須となる句読点は置き換えないようにしてください。
%20 を空白、%2C をカンマとしてメッセージを整形すると、次のようになります:
> URL: https://##PROTECTED_0##
同様に、他の SMS ゲートウェイも URL だけを変更して設定できます。
SMS-Magic
SMS-Magic などの SMS ゲートウェイでは、Webhook を設定するために追加のパラメーター項目を入力する必要があります。
SMS-Magic を設定するには:
- URL に通知項目に、URL https
://sms-magic.in/smapi/post を入力します。 - + 項目パラメーターを追加をクリックします。
- パラメーター項目に次のテキストを入力します:
<?xml version="1.0"?>
<library xmlns:m="http://screen-magic.com" xmlns="http://www.defns.com">
<userid>**User_ID**</userid>
<senderid>**%Sender_ID**</senderid>
<accountid>**%Account_ID**</accountid>
<hashkey>**%hashkey%**</hashkey>
<message mobilenumber="${CONTACT.CONTACT_MOBILE_PHONE}">
<![CDATA[${請求書.INVOICE_TOTAL}]]>
</message>
</library>
URL 内のプレースホルダーを、SMS-Magic アカウントのユーザー ID、Sender ID、アカウント ID に置き換えます。hashkey は、ユーザー ID、パスワード、アカウント ID、Sender ID を連結した文字列に対して生成される標準的な md5 ハッシュ値を指します。
メモ:md5 ハッシュ値を生成するには、このサイトを参照してください。
Text Local
Text Local を利用するには、項目パラメーターとカスタムパラメーターが必要です。
Text Local を設定するには:
- URL に通知項目に、URL http
://api.textlocal.in/send/ を入力します。 - + カスタムパラメーターを追加をクリックします。
- sender と apikey パラメーターを追加し、URL 内のプレースホルダーを Text Local の情報に置き換えます。
- + 項目パラメーターを追加をクリックします。
- パラメーターの名前を入力し、ドロップダウンメニューから必要な条件を選択します。例: numbers = ${連絡先。CONTACT_MOBILE_PHONE}
- ユーザー定義パラメーターを追加を選択し、送信するメッセージと、必要なすべてのプレースホルダーを入力します。
- 保存をクリックします。
その他の操作
Webhook の削除
Webhook を削除するには:
- 設定 > 自動化 > Webhook に移動します。
- 削除したい Webhook の上にマウスカーソルを置きます。
- 削除をクリックします。
- 表示されるポップアップで、はいをクリックします。
Webhook が削除されます。Webhook をワークフロールールで使用している場合は、そのワークフロールールが実行されなくなる可能性があるため、必ずワークフロールールを更新してください。
Webhook のフィルター
Webhook 一覧をフィルターするには、次の手順に従います:
- 設定 > 自動化 > Webhook に移動します。
- タブの下で、Webhook が作成されているタブをドロップダウンから選択します。
選択内容に基づいて、該当する Webhook が一覧表示されます。
- 各ワークフロールールにつき、作成できる Webhook は 1 つのみです。
- 1 日あたり最大 500 件の Webhook を実行できます。
イベント
イベントでは、Zoho Billing 内の Webhook を再送信したり、そのステータスを確認したりできます。
Webhook のステータスを確認するには:
- フィルターを使用して、ステータスに基づき Webhook を並べ替えます。
Webhook を再送信するには:
イベントタブに移動し、Webhook を再送信したいイベントをクリックします。
再送信をクリックして、Webhook を再送信します。
カスタム関数
Zoho Billing のカスタム関数を使用すると、業務プロセスを自動化するための小さなコードを記述できます。顧客の請求書に特別割引を適用したり、請求書が期限切れになったときに延滞料金を追加したりする場合でも、Deluge スクリプトでコードを記述してワークフロールールに関連付けるだけで、その後の自動処理はすべてシステムが行います。
What is Deluge?
Deluge (Data Enriched Language for the Universal Grid Environment) は、Zoho Creator に統合されたオンラインスクリプト言語です。アプリケーションにロジックを段階的に追加できるため、より強力で堅牢なものにできます。
カスタム関数の作成と実行
カスタム関数を設定するには:
- 設定 > 自動化 > カスタム関数 に移動し、+ 新規カスタム関数をクリックします。
- カスタム関数の名前と、簡単な説明を入力します。
- カスタム関数を作成したいタブを選択します。
- 画面左側に表示されているパラメーターを、スクリプトボックスに入力するかドラッグします。
- 任意のパラメーターを選択し、カスタム関数の条件を設定します。
- 完了したら、保存をクリックして変更を反映します。
次の手順として、新しく作成したカスタム関数を使用するワークフロールールを作成します。
- 自動化に戻り、ワークフロールールをクリックします。
- 新しいワークフローを作成し、トリガーを設定します。
- 処理タブで カスタム関数を選択し、先ほど作成したカスタム関数を選択します。
- 保存をクリックします。
条件が満たされると、ワークフロールールが実行され、それによりカスタム関数がトリガーされます。
デフォルト項目
対象: 現在、カスタム関数は、ユーザー、組織、見積書、請求書、顧客、繰り返し請求書、経費、商品タブをサポートしています。
これらのタブには、カスタム関数に必要なパラメーターを取得できる、次の項目があります。
ユーザー
ユーザー項目では、次のパラメーターを利用できます:
| キー項目 | 説明 |
|---|---|
| 名前 | ユーザーの名前 |
| zuid | ユーザーの ZUID |
組織
組織マップでは、次の項目を利用できます:
| キー項目 | 説明 |
|---|---|
| organization_id | 組織 ID |
| 名前 | 組織名 |
| time_zone | 組織のタイムゾーン |
| language_code | 組織の言語 |
| date_format | 組織の日付形式 |
| currency_id | 通貨 ID |
| currency_code | 通貨コード |
| currency_symbol | 通貨記号 |
| 住所 | 組織の住所 |
| 電話番号 | 組織の連絡先番号 |
| FAX | FAX 番号 |
| Webサイト | 組織の URL |
| メール | メールアドレス |
| portal_name | 組織のポータル名 |
サンプルマップ:
{
"time_zone": "Asia/Calcutta",
"language_code": "en",
"currency_id": "7605000000000099",
"phone": "99999999999",
"fax": "check",
"website": "",
"email": "charles@zylker.com",
"address": {
"zip": "624001",
"country": "India",
"city": "New Delhi",
"street_address2": "Block 15",
"street_address1": "6/35 Garden Lane,",
"state": "Delhi"
},
"organization_id": "12345678",
"name": "Zlyker Industries",
"date_format": "dd MMM yyyy",
"currency_symbol": "Rs.",
"portal_name": "zylkerindustry",
"currency_code": "INR"
}
Quote
見積書マップでは、次の項目を利用できます:
| キー項目 | 説明 |
|---|---|
| quote_id | 見積書 ID |
| quote_number | 見積書番号 |
| 日付 | 見積書の日付 |
| reference_number | 見積書の参照番号 |
| ステータス | 見積書のステータス |
| customer_id | 見積書の宛先となる顧客の ID |
| customer_name | 顧客名 |
| currency_id | 通貨 ID |
| currency_code | 通貨コード |
| currency_symbol | 通貨記号 |
| exchange_rate | 見積書で使用される為替レート |
| expiry_date | 見積書の有効期限 |
| discount_amount | 割引額 |
| 割引 | 割引率 |
| shipping_charge | 見積書に入力された送料 |
| 調整 | 調整額 |
| sub_total | 見積書の小計 |
| 合計 | 見積書の合計 |
| tax_total | 見積書の税金合計額 |
| billing_address | 顧客の請求先住所 |
| shipping_address | 顧客の配送先住所 |
| メモ | メモ |
| 条件 | 条件および条項 |
| custom_fields | 見積書のカスタム項目 |
| salesperson_id | 営業担当者の ID |
| salesperson_name | 営業担当者名 |
サンプルマップ:
{
"total": "12000.0",
"terms": “checking",
"quote_id": "7605000000320001",
"date": "2016-06-03",
"quote_number": "EST-000026",
"shipping_address": {
"zip": "94588",
"country": "USA",
"address": "4910 Hopyard Rd",
"city": "Pleasanton",
"state": "CA",
"fax": “Fax Number”
},
"salesperson_name": “Salesperson”,
"adjustment": "0.0",
"currency_symbol": "Rs.",
"salesperson_id": "7605000000336089",
"currency_code": "INR",
"shipping_charge": "0.0",
"custom_fields": [
{
"customfield_id": "7605000000190011",
"is_active": true,
"show_in_all_pdf": false,
"value_formatted": "Check-6",
"data_type": "autonumber",
"index": 1,
"label": "auto number",
"show_on_pdf": false,
"value": "Check-6"
}
],
"currency_id": "7605000000000099",
"exchange_rate": "1.0",
"status": "invoiced",
"sub_total": "12000.0",
"customer_name": “Customer”,
"discount_amount": "0.0",
"discount": "0.0",
"tax_total": "0.0",
"reference_number": “Ref number”,
"notes": "Looking forward for your business.",
"expiry_date": "2016-06-03",
"customer_id": "7605000000258011",
"billing_address": {
"zip": "94588",
"country": "USA",
"address": "4910 Hopyard Rd",
"city": "Pleasanton",
"state": "CA",
"fax": "Fax Number"
}
}
請求書
請求書マップでは、次の項目を利用できます:
| キー項目 | 説明 |
|---|---|
| due_date | 請求書の支払期日 |
| payment_expected_date | 請求書の入金予定日 |
| reference_number | 請求書の参照番号 |
| customer_id | 顧客 ID |
| customer_name | 請求書の宛先となる顧客名 |
| currency_id | 通貨 ID |
| currency_code | 通貨コード |
| currency_symbol | 通貨記号 |
| exchange_rate | 請求書で使用される為替レート |
| discount_amount | 請求書に適用される割引額 |
| 割引 | 請求書に適用される割引率 |
| shipping_charge | 請求書に入力された送料 |
| 調整 | 調整額 |
| sub_total | 請求書の小計 |
| tax_total | 請求書の税金合計額 |
| 合計 | 合計金額 |
| 残高 | 残高 |
| price_precision | 小数点以下の桁数 |
| billing_address | 顧客の請求先住所 |
| shipping_address | 顧客の配送先住所 |
| メモ | メモ |
| 条件 | 条件および条項 |
| custom_fields | 請求書のカスタム項目 |
| salesperson_id | 営業担当者の ID |
サンプルマップ:
{
"total": "0.0",
"payment_terms": "0",
"terms": “Checking”,
"price_precision": "2",
"payment_expected_date": "2016-06-31”,
"date": "2016-06-30",
"shipping_address": {
"zip": "94588",
"country": "USA",
"address": "4910 Hopyard Rd",
"city": "Pleasanton",
"state": "CA",
"fax": "Fax Number"
},
"balance": "0.0",
"adjustment": "0.0",
"currency_symbol": "Rs.",
"salesperson_id": “7605000000336089”,
"currency_code": "INR",
"shipping_charge": "0.0",
"custom_fields": [
{
"customfield_id": "7605000000336081",
"is_active": true,
"show_in_all_pdf": false,
"value_formatted": "INV-8",
"data_type": "autonumber",
"index": 1,
"label": "AutoNumber",
"show_on_pdf": false,
"value": "INV-8"
},
{
"customfield_id": "7605000000351027",
"is_active": true,
"show_in_all_pdf": true,
"value_formatted": "01 Aug 2016",
"data_type": "date",
"index": 2,
"label": "Date",
"show_on_pdf": true,
"value": "2016-08-01"
}
],
"currency_id": "7605000000000099",
"exchange_rate": "1.0",
"status": "draft",
"sub_total": "12000.0",
"customer_name": “Customer”,
"invoice_number": "INV-000087",
"discount_amount": "12000.0",
"discount": "100.00%",
"tax_total": "0.0",
"reference_number": “checking”,
"due_date": "2016-06-30",
"invoice_id": "7605000000369043",
"notes": "Thanks for your business.",
"customer_id": "7605000000258011",
"billing_address": {
"zip": "94588",
"country": "USA",
"address": "4910 Hopyard Rd",
"city": "Pleasanton",
"state": "CA",
"fax": "Fax Number"
}
}
顧客
顧客マップでは、次の項目を利用できます:
| キー項目 | 説明 |
|---|---|
| owner_id | 関連付けられている担当者の ID |
| billing_address | 顧客に関連付けられている請求先住所 |
| データ元 | 顧客のデータ元 |
| contact_id | 連絡先 ID |
| payment_terms | 顧客に関連付けられている支払い条件 |
| currency_code | 通貨コード |
| language_code | 言語コード |
| contact_type | 連絡先の種別 |
| Twitter 情報 | |
| zcrm_contact_id | Zoho CRM 上の連絡先 ID |
| shipping_address | 顧客に関連付けられている配送先住所 |
| pricebook_id | 関連付けられている価格表の ID |
| contact_name | 連絡先名 |
| Webサイト | 連絡先の Web サイト |
| owner_name | 連絡先担当者名 |
| currency_symbol | 通貨記号 |
| zcrm_account_id | Zoho CRM アカウントの ID |
| custom_fields | 顧客に関連付けられているカスタム項目 |
| Facebook 情報 | |
| pricebook_name | 関連付けられている価格表名 |
| primary_contact_id | 主要連絡先の ID |
| company_name | 会社名 |
| contact_salutation | 連絡先の敬称 |
| crm_owner_id | CRM 担当者の ID |
| currency_id | 通貨 ID |
| payment_terms_label | 支払い条件ラベル |
| ステータス | ステータス |
サンプルマップ:
{
"owner_id": "",
"shipping_address": {
"zip": "94588",
"country": "USA",
"address": "4910 Hopyard Rd",
"city": "Pleasanton",
"state": "CA",
"fax": "Fax Number"
},
"source": "user",
"contact_id": "7605000000197147",
"payment_terms": "0",
"currency_code": "INR",
"language_code": "en",
"contact_type": "customer",
"twitter": "",
"zcrm_contact_id": "",
"billing_address": {
"zip": "94588",
"country": "USA",
"address": "4910 Hopyard Rd",
"city": "Pleasanton",
"state": "CA",
"fax": "Fax Number"
},
"pricebook_id": "",
"contact_name": "Arun",
"website": "www.zoho.com",
"owner_name": "",
"currency_symbol": "Rs.",
"zcrm_account_id": "418070000000135001",
"custom_fields": [
{
"customfield_id": "7605000000063049",
"is_active": true,
"show_in_all_pdf": false,
"value_formatted": "1234",
"data_type": "number",
"index": 1,
"label": "Unpaid Invoices",
"show_on_pdf": false,
"value": "1234"
}
],
"facebook": "",
"pricebook_name": "",
"primary_contact_id": "7605000000197149",
"company_name": "Zoho",
"contact_salutation": "",
"crm_owner_id": "",
"currency_id": "7605000000000099",
"payment_terms_label": "Due on Receipt",
"status": "active"
}
経費
経費マップでは、次の項目を利用できます:
| キー項目 | 説明 |
|---|---|
| 日付 | 日付 |
| payment_mode | 支払方法 |
| custom_fields | 経費のカスタム項目 |
| is_billable | 経費の請求可否 |
| line_items | 経費に含まれる明細行 |
| project_name | 関連するプロジェクト名 |
| reference_number | 経費の参照番号 |
| currency_code | 通貨コード |
| 合計 | 合計金額 |
| project_id | 関連するプロジェクト ID |
| sub_total | 経費の小計 |
| customer_name | 関連する顧客名 |
| customer_id | 関連する顧客 ID |
| expense_id | 経費 ID |
| currency_id | 通貨 ID |
サンプルマップ:
{
"date": "2016-10-08",
"payment_mode": "Cash",
"custom_fields": "[]",
"is_billable": "true",
"line_items": [{"tags":[],"tax_name":"Standard Rate","item_order":1,"tax_type":"tax","account_id":"348960000000000400","description":"Notes","tax_amount":16.67,"product_type":"goods","tax_id":"348960000000044037","line_item_id":"348960000000184015","tax_percentage":20,"item_total":83.33,"account_name":"Office Supplies"}],
"project_name": "",
"reference_number": "12345",
"currency_code": "GBP",
"total": "100.0",
"project_id": "",
"sub_total": "83.33",
"customer_name": "Accounts",
"customer_id": "348960000000111017",
"expense_id": "348960000000184003",
"currency_id": "348960000000000103"
}
商品
商品マップでは、次の項目をサポートしています:
| キー項目 | 説明 |
|---|---|
| item_id | 商品 ID |
| custom_fields | 商品のカスタム項目 |
| tax_name | 適用される税金名 |
| zcrm_product_id | Zoho CRM 上の商品の ID |
| tax_id | 適用される税金 ID |
| 単位 | 商品の単位 |
| account_id | 売上アカウント ID |
| tax_type | 適用される税金の種類 |
| 単価 | 商品の売上単価 |
| account_name | 売上アカウント名 |
| 名前 | 商品名 |
| tax_percentage | 適用される税率(%) |
| pricebook_rate | 価格表単価 |
| SKU(最小在庫管理単位) | 商品の SKU(最小在庫管理単位) |
| ステータス | 商品のステータス |
サンプルマップ:
{
"item_id": "348960000000051011",
"custom_fields": [{"value_formatted":"100","index":1,"is_active":true,"data_type":"decimal","show_on_pdf":true,"value":100,"show_in_all_pdf":true,"label":"Profit","customfield_id":"348960000000134003"}],
"tax_name": "",
"zcrm_product_id": "1665395000000205001",
"tax_id": "",
"unit": "1",
"account_id": "348960000000000388",
"tax_type": "",
"rate": "1000.0",
"account_name": "Sales",
"name": "Item",
"tax_percentage": "0",
"pricebook_rate": "1000.0",
"sku": "SKU",
"status": "active"
}
これらの項目が、必要なパラメーターを取得する際にどのように役立つかを説明する例をいくつか示します:
例 1:
見積 ID を取得するには、次を使用します:
quoteid = quote.get("quote_id");
例 2:
組織名を取得するには、次を使用します:
orgid = organization.get("name");
例 3:
ユーザーの名前と ZUID を取得するには、次を使用します:
username = user.get("name");
zuid = user.get("zuid");
カスタム関数が役立つさまざまなシナリオの詳細については、カスタム関数のシナリオページを参照してください。
アプリ内通知
アプリ内通知機能を使用すると、特定の操作に関して、組織内のユーザーに自動的に通知を送信できます。通知は、操作が実行されたときに 1 回だけ、または操作が実行されるたびに送信することができます。
アプリ内通知を作成し、特定の操作が発生するたびにワークフローが実行され、そのアプリ内通知がプロダクト内に表示されるようにワークフローを設定できます。
アプリ内通知を作成するには:
- [設定] > [自動化] > [アプリ内通知] に移動します。
- [+ 新しいアプリ内通知] をクリックします。
- [名前] 項目にアプリ内通知の名前を入力します。
- [タブ] ドロップダウンから対象タブを選択します。ここで定義した操作が実行されたときに、アプリ内通知が実行されます。
- [Recipients] 項目から、通知を受け取るユーザーを選択します。
- 通知として表示するメッセージを入力します。[Insert Placeholders] ドロップダウンからプレースホルダーを選択して、メッセージに追加できます。
- [保存] をクリックします。
通知は、プロダクト内で次のように表示されます。
スケジュール
Zoho Billing では、スケジュールを使用して、あらかじめ定義したタスクを指定した時間間隔で作成・実行できます。Deluge スクリプトでタスクを作成し、そのタスクを特定の時間または繰り返しで実行するようにスケジュールできます。
メモ:この機能は現在、一部のプランでのみ利用できます。詳細は、サポートチーム([サポート@zohobilling.com](mailto:サポート@zohobilling.com))までお問い合わせください。
シナリオ
ここでは、スケジュールを作成してカスタム処理を実行できるシナリオの一部を紹介します。なお、自社の要件に応じて自由にスケジュールを作成できます。
シナリオ 1:Peter はスーパーマーケットを経営しています。毎月末に、その月の合計購入金額が 1000 を超える顧客に対して、次回購入時に 10% 割引を提供したいと考えています。Peter は、月末最終日に該当する顧客にメールを送信するスケジュールを作成します。
シナリオ 2:Peter は、顧客と従業員のデータベースを管理するために、サードパーティアプリケーションを使用しています。Zoho Billing からそのアプリケーションへ、すべてのデータを定期的に同期したいと考えています。そのために、毎日午後 6 時にデータを同期するカスタムスケジュールを作成します。
シナリオ 3:Peter は、各エリアマネージャーに四半期ごとの売上目標を設定しています。4 か月ごとに、目標を達成した場合はお祝いのメールと損益計算書レポートを、達成していない場合は励ましのメールとレポートを送信する必要があります。Peter は関数を作成し、4 か月ごとにスタッフへ送信されるようにスケジュールします。
新しいスケジュールの作成
新しいスケジュールを作成するには:
[設定] > [自動化] > [スケジュール] > [+ 新しいスケジュール] に移動します。
スケジュールの[名前]を入力します。
スケジュールを実行する[Frequency](頻度)と繰り返しパターンを設定します。毎日、毎週、毎月、毎年から選択できます。
Insight:繰り返しパターンでは、スケジュールをいつ実行するかを指定できます。設定した頻度に基づいて実行するように選択できます。
タスクを実行する頻度を選択します。
毎日: タスクは毎日(または繰り返しパターンに基づいて)実行されます。週末を除外することもできます。
Weekly: タスクは週に 1 回実行されます。タスクを実行する曜日を選択します。
月間: タスクは月に 1 回実行されます。特定の日付、または月内の特定の曜日を指定できます。たとえば、「毎月 5 日」または「毎月第 2 土曜日」に実行するように設定できます。
年間: タスクは年に 1 回実行されます。月を選択し、実行日または曜日を指定できます。たとえば、「1 月の第 1 日曜日」または「1 月 5 日」に実行するように設定できます。
[開始日と時間]を設定します。
注意:スケジュールの開始日は、作成日から 1 年を超える日付には設定できません。
スケジュールの有効期限を選択します。指定回数の実行後に終了する、特定の日付で終了する、または無期限にすることができます。
ドラッグ&ドロップで設定を行い、Deluge 関数を作成して、実行する処理を定義します。
Insight:Deluge(Data Enriched Language for the Universal Grid Environment)は、Zoho サービスに統合されたオンラインスクリプト言語です。独自の関数を作成してアプリケーションを段階的にカスタマイズし、より強力で堅牢にすることができます。
[保存] または [保存して実行] をクリックして実行します。
Insight:スケジュールは最大 10 件まで作成できます。
サンプル関数:
シナリオ 1向けのサンプル関数は次のとおりです:
organizationID = organization.get("organization_id");
name = organization.get("name");
orgEmail = organization.get("email");
salesResponse = invokeUrl
[
url: "https://billing.zoho.com/api/v3/reports/salesbycustomer?organization_id=" + organizationID + "&from_date=" + toStartOfMonth(today).toString("YYYY-MM-dd") + "&to_date=" + eomonth(today,0).toString("YYYY-MM-dd")
type: GET
connection: "billing_api_connection"
];
salesDetails = salesResponse.get("sales").toList();
for each sales in salesDetails
{
amount = sales.get("sales_with_tax");
if(amount > "') { customerName = 営業。取得する('customer_name'); customerResponse = invokeUrl [ url: 'https://billing.zoho.com/api/v3/customers/' + 営業。取得する('customer_id') + '?organization_id=' + organizationID 種類: 取得する connection: 'billing_api_connection' ]; customerDetails = customerResponse。取得する('連絡先'); customerEmail = customerDetails。取得する('メール'); sendmail [ 差出人 :Zoho。adminuserid to :customerEmail 件名 :'ありがとうございました for shopping! Here's a 10% 割引!' メッセージ :'Dear ' + customerName + ',
We just wanted to take a moment to ありがとうございました for your continuous サポート.
Based オン your recent 購入, we'd like to offer you 10% オフ your 次 purchase with us.
Please 表示 this メール during billing to avail this 割引!
Regards,
' + 名前 + '
' ] } }