Web-toリードとは
Salesforceにリードを登録するときに直接フォーム->Salesforceに登録できるものです。
フォームの作成もポチポチ設定すればできるので非常に便利ではあるものの、
フォームのバリデーションはフロントのみでバックエンドを通さないのでできなかったりするのでそのまま使うと少々不便だったりします。
どうやったか
フォームの作成で生成されたパラメータを元に
バックエンドでGuzzleでリクエストしただけです。
これについて調べると、curlでの英語の記事しかなかったので、サクッと記事にしました。
use GuzzleHttp\Client;
...
...
.
class SalesforceWebToLeadService
{
public function post(array $params)
{
// $params は key-valueでパラメータを作成してください 例: first_name => 'HOGE' など
// oidは必ず入れる
$params['oid'] = "個別の識別子";
$options = [
'http_errors' => true,
'verify' => false,
'form_params' => $params,
'headers' => [
'Host' => "webto.salesforce.com",
]
];
try {
$client = new Client();
$client->post("https://webto.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8", $options);
} catch (\Exception $e) {
\Log::error($e->getMessage());
}
}
}
こうすれば、フォーム->バックエンド->salesforceへデータを流せて、バックエンドのバリデーションやレコードを作成したり、いろいろしたうえでsalesforceへレコードを作成できます。