No-Code Integration
You don't need to be a developer to use the Relay Helium API! This guide will show you how to integrate with popular no-code tools.
Zapier Integration
Setting Up Zapier
- Sign up for a Zapier account at zapier.com
- Create a new Zap
- Search for "Webhooks by Zapier" as your trigger or action step
- Select "Custom Request" as your action type
caution
To use "Custom Request" in "Webhooks by Zapier", make sure you set it as action and not a trigger. Learn more about Webhooks by Zapier in Zapier's official guide
Common Zapier Examples
Track IoT Rewards
Trigger: Schedule (Daily) Action: Webhook to fetch rewards
Configuration:
URL: https://api.relaywireless.com/graphql/iot-reward-shares
Method: GET
Headers:
- Authorization: Bearer YOUR_API_KEY
- Accept: application/json
Params:
hotspotKey = Hotspot ECC key
startPeriod = YYYY‑MM‑DD
endPeriod = YYYY‑MM‑DD
Zapier Tips
- Use "Formatter by Zapier" to process JSON responses
- Set up error notifications using "Email by Zapier"
- Store results in Google Sheets or Airtable
- Use delay steps to respect rate limits
- For paginated data, use Storage by Zapier to accumulate results across pages
Make.com (Formerly Integromat)
Basic Setup
- Create a new scenario
- Add an HTTP module
- Configure GraphQL request:
- Method: POST
- URL: https://api.relaywireless.com/graphql
- Headers: Add Authorization and Content-Type
- Body: Your GraphQL query
Example Scenarios
Track Mobile Rewards
- HTTP Request with pagination:
{
"query": "{ mobileRewardShares(first: 100, after: null) { nodes { amount hotspotKey startPeriod endPeriod } pageInfo { hasNextPage endCursor } } }"
}
- Iterator to process pages
- Filter to check rewards threshold
- Telegram or Email for notifications
Airtable Automation
Setting Up Airtable
- Create a new base
- Add an Automation
- Use "Run a script" action
- Configure HTTP request with pagination support:
// Airtable Script with pagination
let hasNextPage = true;
let cursor = null;
let allResults = [];
while (hasNextPage) {
let response = await fetch("https://api.relaywireless.com/graphql", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer YOUR_API_KEY",
},
body: JSON.stringify({
query: `{
iotRewardShares(first: 100, after: ${cursor ? `"${cursor}"` : null}) {
nodes {
hotspotKey
amount
startPeriod
endPeriod
beaconAmount
witnessAmount
}
pageInfo {
hasNextPage
endCursor
}
}
}`,
}),
});
let data = await response.json();
allResults = allResults.concat(data.data.iotRewardShares.nodes);
hasNextPage = data.data.iotRewardShares.pageInfo.hasNextPage;
cursor = data.data.iotRewardShares.pageInfo.endCursor;
// Add delay to respect rate limits
await new Promise((resolve) => setTimeout(resolve, 1000));
}
output.set("data", allResults);
Google Sheets Integration
Using Apps Script
- Open your Google Sheet
- Go to Extensions > Apps Script
- Add this function with pagination support:
function fetchAllHeliumData() {
var allRewards = [];
var hasNextPage = true;
var cursor = null;
while (hasNextPage) {
var options = {
method: "post",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer YOUR_API_KEY",
},
payload: JSON.stringify({
query: `{
status
mobileRewardShares(first: 100, after: ${
cursor ? `"${cursor}"` : null
}) {
nodes {
amount
hotspotKey
startPeriod
endPeriod
}
pageInfo {
hasNextPage
endCursor
}
}
}`,
}),
};
var response = UrlFetchApp.fetch(
"https://api.relaywireless.com/graphql",
options
);
var data = JSON.parse(response.getContentText());
allRewards = allRewards.concat(data.data.mobileRewardShares.nodes);
hasNextPage = data.data.mobileRewardShares.pageInfo.hasNextPage;
cursor = data.data.mobileRewardShares.pageInfo.endCursor;
// Add delay to respect rate limits
Utilities.sleep(1000);
}
// Write all data to sheet
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange("A1").setValue(new Date());
sheet.getRange("B1").setValue(data.data.status);
allRewards.forEach((reward, index) => {
sheet.getRange(index + 2, 1).setValue(reward.hotspotKey);
sheet.getRange(index + 2, 2).setValue(reward.amount);
sheet.getRange(index + 2, 3).setValue(reward.startPeriod);
});
}
Setting Up Triggers
- In Apps Script, go to Triggers
- Create a new trigger:
- Choose the function
- Set time-based trigger
- Select frequency
- Consider longer intervals for paginated queries
IFTTT Integration
Creating an IFTTT Applet
- Create new applet
- Choose "Webhooks" as service
- Configure webhook:
- URL: https://api.relaywireless.com/graphql
- Method: POST
- Content Type: application/json
- Body: Your GraphQL query
Example IFTTT Recipes
-
Daily Reward Summary:
- Trigger: Time of day
- Action: Webhook to fetch rewards
- Action: Send email with results
Note: Since IFTTT doesn't support native pagination, consider:
- Using date-based filtering instead of cursor pagination
- Creating multiple applets for different data ranges
- Using a middleware service for handling pagination
-
Status Change Alert:
- Trigger: Webhook (status check)
- Action: Send notification
- Action: Log to Google Sheet