こんにちは、チームの皆さん。
Kajabiで新製品を購入したユーザーを、新しいグループに追加しながら、自動的にDiscourseに招待する自動化をMake.com経由で設定しようとしています。
問題は、これらの購入者のほとんど(すべてではありませんが!)が、すでにフォーラムにアカウントを持っていることです。2021年の以下の投稿を含む、422エラーに関する他の多くの投稿を読んだ結果、このエラーは、メールアドレスがすでにDiscourseのアカウントに関連付けられているために発生していると考えています。
What can be the meaning of error 422 that I am getting when sending an invite (see attached, error shows at the top)? It is happening after updating to 2.7.0.beta4.
[error_422]
しかし、その投稿以降の招待システムが更新されたことで、これはもはや問題ではなくなり、アカウントを持っているユーザーにエラーを発生させることなく、アカウントを持っていないユーザーにも招待を送信しながら、.csvを使用して手動でユーザーをグループに追加するために一括招待できると理解していました。
では、この問題はどのように修正すればよいでしょうか?招待のためのAPIコードは、APIドキュメントの標準APIコードを使用しており、過去にも機能していました。既存の(動作中の)シナリオをMakeでクローンし、グループ名と開始トピックを調整しただけです。参考までに、使用しているAPIコードは次のとおりです。
{
"email": "user@host.com",
"skip_email": false,
"max_redemptions_allowed": 1,
"topic_id": 782,
"group_names": "Group-Name"
}
「skip_email」セクションの「false」を「true」に変更するだけで解決しますか?それとも、アカウントを持っていないユーザーには招待が送信されませんか?
また、ユーザーをグループに追加するためのPUT関数も確認しましたが、KajabiからWebhookで送信されたメールのみを扱っており、PUT関数ではメールアドレスを使用できないと思われるため、ユーザー名を確認するための方法をどのように設定すればよいかわかりません。
何かお手伝いいただければ幸いです!
Oh, I wanted to add that I used the same webhook link from Make in the outgoing webhook line for 3 separate products in Kajabi, but these products would not be purchased together as they are individual “add-on” options. I thought this might be the issue, but when I tested the scenario by sending a test outbound webhook from each product there were no errors. The error only started when a “real” user purchased the product, and that user had an account.
また、Makeの同じWebhookリンクをKajabiの3つの別々の製品のアウトバウンドWebhookラインで使用しましたが、これらの製品は個別の「アドオン」オプションであるため、一緒に購入されることはありませんでした。これが問題かもしれないと思いましたが、各製品からテストアウトバウンドWebhookを送信してシナリオをテストしたところ、エラーはありませんでした。エラーは、「実際の」ユーザーが製品を購入し、そのユーザーがアカウントを持っていた場合にのみ発生し始めました。
pfaffman
(Jay Pfaffman)
2025 年 3 月 6 日午後 11:08
3
Discourse API を リバースエンジニアリング して、admin/users ルートを使用し、メールアドレスでユーザーを検索して、そこから進めることができますか?
リンクとご提案ありがとうございます。私の能力を超えているようですが、何も壊さないようにできるか見てみます。
CSV経由での一括招待が、既存ユーザーがいる場合にプロセス全体にエラーを発生させることなく処理できるのと同じ方法で、これを解決できない理由は何ですか? APIに「ユーザーが存在する場合は招待をスキップする」という行を組み込むだけで、簡単な方法があるはずだと思います…