SolarDialer

SolarDialer for Activepieces

Add SolarDialer to your Activepieces flows: new leads from any app are called within a minute, and every call, transfer and callback can start a flow of its own.

Piece @solardialer/piece-solardialer, for self-hosted Activepieces and Activepieces plans that allow custom pieces. You need a SolarDialer account and its API key (Account → API).

Call a lead now

Call Lead Now calls a lead the moment it arrives, within its legal calling hours, and transfers it live to your closer if interested.

Add, update and find leads

Create or Update Lead puts a lead on a list or campaign (picked from your account); Find Lead looks one up by phone or ID.

Start flows from SolarDialer

Triggers fire when a call ends, a lead is transferred or interested, a callback is booked, a status changes, a lead is added, a campaign finishes, or someone asks not to be called.

Every call's details

Call events carry the outcome, the AI summary, the answers, the transcript and the recording link, ready for your CRM, a sheet or a message to your team.

Install in 3 steps

  1. Install the pieceIn Activepieces: Settings → My Pieces → Install Piece (on a platform: Platform Admin → Pieces → Install Piece), and enter @solardialer/piece-solardialer.
  2. Add your API keyIn a flow, add a SolarDialer step and connect it with the key from Account → API on solardialer.net.
  3. Build a flowFor example: a form or ad lead → SolarDialer, Call Lead Now; or SolarDialer, Lead Transferred → your CRM or Slack. Triggers need your Activepieces to be reachable over https.

Full setup guide

Everything you need to set it up and keep it running. Stuck? Email info@solardialer.net.

Before you start

  • Activepieces 0.88.2 or newer, self-hosted, or an Activepieces plan that allows custom pieces.
  • For the triggers: your Activepieces reachable from the internet over https. SolarDialer only sends events to a public https address, never to localhost or a private network.
  • A SolarDialer account with a campaign, and an API key from Account → API.
  • For leads you send: a first name and a phone number. US numbers in any common form; other countries with + and the country code.
  • For calls to go out: your account approved, your agent's script checked, a transfer line set (Account → Overview → Your transfer line) and a running campaign.

Step by step

  1. Install the pieceIn Activepieces open Settings → My Pieces → Install Piece (on a platform: Platform Admin → Pieces → Install Piece) and enter @solardialer/piece-solardialer.
  2. Create an API keyOn solardialer.net open Account → API and click Create API key. Copy it now: it starts with sdk_ and is shown only once.
  3. Add a SolarDialer stepIn a flow that starts from your lead source (a form, a webhook, a CRM, a sheet), add a step, pick SolarDialer and choose Call Lead Now (call at once), Create or Update Lead (put the lead on a list or campaign) or Find Lead.
  4. Connect your accountCreate a connection and paste the key into API Key. Activepieces checks it with SolarDialer before saving it.
  5. Map the lead's fieldsMap at least First Name and Phone. Add State (two letters) for US leads, and pick a Campaign (or a List) so a running campaign calls the lead. Your Lead ID (for example the CRM contact ID) makes sending the same lead again update it.
  6. Test with your own phoneTesting Call Lead Now places a real call, billed like any call. Test it with your own name and number, during calling hours. Create or Update Lead only saves the lead: find it under Leads in SolarDialer.
  7. Start flows from SolarDialer (optional)Make a flow whose trigger is SolarDialer, for example Lead Transferred or Call Ended, then your CRM, Slack or a sheet. Testing the trigger loads your 5 newest events of that kind.
  8. Publish the flowTurning the flow on subscribes its trigger in your SolarDialer account (it shows on Account → Integrations under Connected); turning it off removes the subscription.

Settings, explained

First Name (required)
The name the agent asks for. A full name put in First Name with no Last Name is split, so the agent greets the first name only.
Phone (required)
US numbers in any common form; other countries with + and the country code. One number is one lead in your account: sending it again updates that lead.
State
Two letters (PA); a written-out name works too. It decides the calling hours and rules. Left out for a US number, SolarDialer takes it from the ZIP, or else from the phone's area code.
Last Name, Email, Address, City, ZIP, Second Phone
Kept on the lead. The second phone is tried in turn within the same calling limits.
Your Lead ID
Your own ID for the lead (for example the CRM contact ID). Sending it again updates the lead. SolarDialer's own ID (like u3-W1047, from a trigger) works too.
List
The list to put the lead on, chosen from your account; to make a new one, turn on Dynamic value and type its name. With Call Lead Now, a lead that can't be called right now (outside its calling hours, say) is called later by a running campaign on this list.
Campaign
The campaign to put the lead in, chosen from your account: the lead goes on that campaign's list, over the List above.
Source, Notes
Kept on the lead, for example the form or ad it came from.
Find By, Value
For Find Lead: Phone (any of the lead's numbers) or Lead ID (the ID you sent it with, or SolarDialer's own, like u3-W1047), and the value to look for.

Triggers and actions

Triggers: start your automation when something happens in SolarDialer.

Call Ended
A call ends, with its outcome, AI summary, the lead's answers, the transcript and the recording links.
Lead Transferred
A lead is transferred to your closer and the transfer connects. Same details as Call Ended.
Lead Interested
A lead says yes: the transfer connected or didn't, or a callback with your closer was booked instead. Same details as Call Ended.
Callback Booked
A callback is booked: when (as a time and as the lead said it), the note, who calls back (the agent or your closer), and whether it's a phone call or a home visit.
Lead Status Changed
A lead's status changes, with the old and the new status.
New Lead
A lead new to your account is added by any way in (upload, form, API, a call...), with the list it went on.
Campaign Finished
A campaign finishes (every lead done, or stopped), with its totals: leads, calls, talked, transferred and appointments.
Lead Asked Not to Be Called
A lead asks not to be called again.

Actions: what your automation can have SolarDialer do.

Call Lead Now
Saves the lead and has the agent call it right away, within its legal calling hours; an interested lead is transferred live to your closer. Returns called, call_id and reason (why it was not called). Each run places a real call, so a retried run calls again.
Create or Update Lead
Saves a new lead, or updates the one with the same phone or Your Lead ID, on the list or campaign you pick. Safe to retry.
Find Lead
Finds a lead by phone or ID, with its status and a link to it. Returns found: false when there is no match.
Custom API Call
Any other request to the SolarDialer API (solardialer.net/api), with your key added for you.

What it reads and writes

Sent to SolarDialer
Only the fields you map: name, phones, state, email, address, city, ZIP, your lead ID, list or campaign, source and notes. A lead sent from Activepieces goes through the same checks as an uploaded one: calling hours, the do-not-call list, holidays and attempt limits.
Call details your flow gets
outcome (transferred, transfer_failed, talked, voicemail, no_answer, dnc...), ended_reason, direction (outbound, or inbound when the lead called you), started_at, seconds, campaign, disposition, call_url, from_number, to_number, summary, transcript, answers, objections, interest (1-5) and lead.
Recordings
recording_link plays in a browser with no login, for a CRM note or an email. recording_audio is the audio file itself. recording_url is the API's address and needs your API key. All are empty for a call with nothing recorded.
Signed events
The piece accepts only events signed with its own subscription's secret and sent in the last 15 minutes, and runs each event once.
Kept in SolarDialer
Each event for 90 days. Talking to your agent in the browser (Hear your agent) places no call and sends no event.

Troubleshooting

"SolarDialer did not accept this API key. Create a new one in SolarDialer → Account → API."

The key was mistyped, replaced or turned off. Create a new key on Account → API and make a new connection with it.

"Could not check this key with SolarDialer: ..."

Activepieces couldn't reach SolarDialer, or SolarDialer answered with an error (the rest of the line says which). Check your server can reach solardialer.net over https, then try again.

The List or Campaign dropdown says "Connect your SolarDialer account first."

Pick or create the SolarDialer connection in the step first. "No campaigns yet in this SolarDialer account." means you have none: create one on solardialer.net.

"target_url must be an https URL on the public internet."

Your Activepieces runs on localhost, a private network or plain http, so the trigger can't be subscribed. Run it at a public https address, then turn the flow on again.

"missing required field: first_name" or "missing required field: phone"

The step ran without that field. Map First Name and Phone, and check the earlier step really has a value for them.

"phone is not a valid number (10-digit US, or + and country code)"

Map the phone field itself, not a name or ID. Numbers outside the US and Canada need + and the country code.

"missing required field: state (needed for a US number)"

No State was sent and none could be found from the ZIP or area code. Map State (two letters) or ZIP.

"phone already belongs to another lead in your account"

That number is already a lead under another ID. Leave Your Lead ID empty to update the existing lead by its phone, or use Find Lead first to get its ID.

"That campaign wasn't found."

The campaign was deleted, or an ID from another account was given. Choose the campaign again from the list.

"Fill in the phone or lead ID."

Find Lead ran with an empty Value. Give it a phone number or a lead ID.

Call Lead Now returns called: false

The lead is saved, and reason says why: for example outside legal calling hours in the lead's time zone, a holiday, called too recently, or on the do-not-call list. A running campaign on its list calls it when it can.

"Your account is waiting for approval, so it can't call leads yet."

New accounts are approved by SolarDialer before leads are called. Meanwhile, talk to your agent in your browser: Single dial → Hear your agent.

"Check the lines your agent will say first: open Account → Script on solardialer.net, then calls can start."

Read your agent's script on solardialer.net and confirm it once; Call Lead Now works from then on.

"Your balance is empty. Add funds to keep calling."

Add funds on Account → Billing history, then press Resume on any paused campaign.

"More than 300 calls this hour: try again later."

Each account can place up to 300 calls an hour through the API, add 1,000 leads and make 3,000 lookups. Spread big batches out, or add them with Create or Update Lead and let a campaign call them.

The flow is on but the trigger never runs

Open Account → Integrations. Retrying means your Activepieces' address failed and SolarDialer tries again after 1, 5 and 30 minutes, 2 hours and 12 hours; Stopped: its address kept failing means it gave up (you got an email): press Resume. Check your server's clock too: events sent more than 15 minutes earlier, by its clock, are ignored. Turning the flow off and on makes a fresh subscription.

Triggers stopped after I replaced or turned off my API key

That removes the hooks the old key made. Make a connection with the new key, then turn each flow with a SolarDialer trigger off and on again.

"Too many hooks on this account."

An account can have 50 at a time, one for each SolarDialer trigger in a flow that's on. Remove ones you no longer use on Account → Integrations.

My test call didn't start the flow

Talking to your agent in the browser (Hear your agent) places no call and sends no event. Test with a real lead, for example yourself added with Call Lead Now.

FAQ

How fast is a new lead called?

Call Lead Now calls within moments of the step running, if it's within the lead's calling hours. Otherwise the lead waits for a running campaign on its list.

Is it in the Activepieces piece library?

It is installed as a custom piece from npm (@solardialer/piece-solardialer), which is why it needs a self-hosted Activepieces or a plan that allows custom pieces.

Can Activepieces' AI agents use it?

Yes: its actions are available to AI agents as well as flows. Each Call Lead Now places a real, billed call.

Will the same lead be called twice?

No. One number is one lead in your account: sending it again updates the lead, and every call still follows the calling limits for the lead's state.

Can I use it without the piece?

Yes. The same actions and events are in the API at solardialer.net/api.

What does it cost?

The piece is free. Calls are billed by the minute from your SolarDialer balance, with $2 of free calls every month.

Disconnect

  • Turn a flow off to stop its SolarDialer trigger: its subscription is removed.
  • Remove a single subscription on Account → Integrations, under Connected.
  • To cut every connection, replace or turn off your API key on Account → API. Your leads and calls stay in SolarDialer.

Pay only when we're talking to someone

22¢ a minute while on a call, or 14¢ with your own phone line. Calls nobody answers are free.

No monthly fee, no minimum. See pricing

Add it to Activepieces today

Questions? Call, text or +1 (689) 220-2019, or email info@solardialer.net. The same actions and events are in our API.