Make: send saved affiliates to your CRM
Every morning, Make picks up the affiliates you saved in RecruitAffiliates.ai and adds each one to your CRM.
Save affiliates in RecruitAffiliates.ai as you find them. Every morning, Make copies the new ones into your CRM and tags them, so nobody gets added twice. A CRM is the tool where you track the people you're talking to, like HubSpot or Pipedrive.
This recipe only reads and tags. It never spends a credit.
What you need
- A plan that includes the API, and a key with the
finder:writescope. Writing a tag needs write. - A Make account, and your CRM connected to Make.
Build the scenario
- In Make, create a scenario. Start it with the "HTTP" app and the module "Make a request".
- Fill in the request:
| Setting | Value |
|---|---|
| URL | https://api.affiliaterail.com/v1/finder/saved |
| Method | GET |
| Query string | view = saved, limit = 100 |
| Header | Authorization = Bearer rail_test_... |
| Parse response | Yes |
- Add an "Iterator" module. Map its array to
datafrom the HTTP module. Each saved affiliate now runs through the rest of the scenario one at a time. - Add a filter after the iterator. Let a row through only when
tagsdoesn't containin-crm. - Add your CRM's "Create a contact" module. Map the affiliate's details across. The email is only there if you've revealed it.
- Add a second "Make a request" module to tag the affiliate:
| Setting | Value |
|---|---|
| URL | https://api.affiliaterail.com/v1/finder/prospects/{{id}} |
| Method | POST |
| Headers | Authorization = Bearer rail_test_..., Content-Type = application/json, Idempotency-Key = crm-{{id}} |
| Body type | Raw, JSON |
| Request content | {"tags": ["in-crm"]} |
Use the id from the iterator in both places.
- Set the schedule to once a day, at a time that suits you.
- Press "Run once" in Make to test it with your test key. Then swap in a live key.
Tags, not a memory
The in-crm tag is how the scenario remembers who it's already sent. You'll see it on each affiliate in the app too. Take the tag off and that person goes to your CRM again the next morning.
The tags you send replace the ones already there. If you use other tags, read tags from the iterator and send them back along with in-crm.
More than 100 saved
One request returns up to 100 people. If the answer says has_more is true, you have more. Add a "Repeater" and call again with cursor set to next_cursor from the last answer, until has_more is false. The API guide explains how cursors work.
If something goes wrong
- A
402means your plan doesn't include the API. - A
403means the key only hasfinder:read. Make a key withfinder:write. - A
429means you've hit the rate limit. Turn on "Allow storing of incomplete executions" in the scenario settings, and Make retries later.
Get events the moment they happen
The scenario above checks on a schedule. A webhook tells Make the moment something happens instead, like a reply or a finished search. Webhooks explains the events. You need a plan that includes webhooks.
- Start a scenario. Add the "Webhooks" module, then "Custom webhook".
- Add a webhook, name it, and copy the address Make gives you.
- In RecruitAffiliates.ai, go to Settings, then the Webhooks tab. Add the address as an endpoint and pick your events.
- Press Send a test. Make learns the shape of the body from it.
Keep the address private. Anyone who has it can post to your scenario. Checking the signature is what stops a fake.
Ready-made scenarios
Two scenarios you can import as they are. In Make, create a scenario, press the three dots at the bottom, choose Import Blueprint and pick the file.
- Interested reply to Slack: posts in Slack when someone replies with interest. That means a
reply.receivedevent whosereply_kindispositiveorquestion. - New affiliate to a Google Sheet: adds a row when an invited affiliate signs up (
affiliate.signed_up).
After you import one:
- Open the webhook module and add a new webhook. Copy its address into the Webhooks tab.
- Put a Read only key in place of
rail_live_REPLACE_WITH_A_READ_ONLY_KEYin the module that gets the affiliate. - Put your Slack address in the last module, or connect Google and pick your sheet. The sheet needs columns for name, website, email, date and source, in that order.
Make passes the body on already parsed, so these scenarios can't check the signature. The webhook's address is long and random, and that's what keeps a stranger out. If you need the signature checked, use the n8n version or your own code.
Was this page helpful?