Connect n8n, Make.com, Zapier, or custom webhooks directly to physical Android SIM cards. Enjoy 100% exemption from A2P 10DLC registration fees with automated two-way delivery receipts and enterprise-grade carrier rate pacing.
Engineered for n8n Cloud, Make.com, or any cloud CRM without static IPs. Your automation posts to our central serverless endpoint using your Pro License Key; high-priority Google Firebase Cloud Messaging (FCM) instantly wakes the Android device and executes the native carrier SMS.
For self-hosted homelabs, local CRM servers, or secure private networks using Tailscale / WireGuard. The Android app spins up an embedded HTTP server listening on port 8080 for zero-latency local dispatch with delivery receipt callbacks.
Pass your Pro License Key in the X-License-Key header or Authorization header. Destination numbers should be formatted in standard E.164 format (e.g. +15551234567).
curl -X POST https://missedcallautosms.com/api/dispatch-sms \
-H "Content-Type: application/json" \
-H "X-License-Key: MCAS-PRO-DEMO-89F2" \
-d '{
"to": "+15551234567",
"message": "Hi John! Thanks for booking your estimate with Apex Plumbing. See you Thursday at 2 PM!",
"sim_slot": 1,
"callback_url": "https://your-domain.com/webhook/sms-callback"
}'
const response = await fetch('https://missedcallautosms.com/api/dispatch-sms', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-License-Key': 'MCAS-PRO-DEMO-89F2'
},
body: JSON.stringify({
to: '+15551234567',
message: 'Hi John! Your appointment confirmation has been received.',
sim_slot: 1,
callback_url: 'https://your-crm.com/webhooks/sms-delivery'
})
});
const data = await response.json();
console.log('Dispatch status:', data);
import requests
url = "https://missedcallautosms.com/api/dispatch-sms"
headers = {
"Content-Type": "application/json",
"X-License-Key": "MCAS-PRO-DEMO-89F2"
}
payload = {
"to": "+15551234567",
"message": "Hi John! Your invoice #1042 is ready for review.",
"sim_slot": 1,
"callback_url": "https://your-crm.com/webhooks/sms-delivery"
}
res = requests.post(url, json=payload, headers=headers)
print(res.status_code, res.json())
// In an n8n HTTP Request node:
Method: POST
URL: https://missedcallautosms.com/api/dispatch-sms
Authentication: None (Use Header)
Headers:
- Name: X-License-Key
Value: MCAS-PRO-DEMO-89F2
- Name: Content-Type
Value: application/json
Body Parameters:
{
"to": "={{ $json.customer_phone }}",
"message": "={{ $json.sms_body }}",
"sim_slot": 1
}
// In Make.com (Integromat) HTTP Module:
Action: Make a request
URL: https://missedcallautosms.com/api/dispatch-sms
Method: POST
Headers:
- Key: X-License-Key, Value: MCAS-PRO-DEMO-89F2
- Key: Content-Type, Value: application/json
Body type: Raw
Content type: JSON (application/json)
Request content:
{
"to": "{{1.phone_number}}",
"message": "Hi {{1.first_name}}, thanks for contacting us!",
"sim_slot": 1
}
| Field | Type | Required | Description |
|---|---|---|---|
to or phone |
string | Yes | Target recipient phone number in standard E.164 format. |
message |
string | Yes | Text message content. Automatically segmented if exceeding 160 chars. |
sim_slot |
integer | No | 1 for SIM 1, 2 for SIM 2 (eSIM). Default is 1. |
callback_url |
string | No | Webhook URL to receive instantaneous carrier delivery confirmation. |
curl -X POST http://192.168.1.150:8080/api/send-sms \
-H "Content-Type: application/json" \
-d '{
"secret": "YOUR_16_CHAR_SECRET",
"phone": "+15551234567",
"message": "Direct on-premise carrier dispatch.",
"sim_slot": 1,
"callback_url": "https://your-homelab.internal/webhook/delivery"
}'
When the carrier network acknowledges dispatch, your Android appliance fires an HTTP POST payload back to your specified callback_url:
{
"status": "SENT",
"phone": "+15551234567",
"sim_slot": 1,
"message": "Hi John! Thanks for reaching out...",
"timestamp": 1789658400000,
"carrier_dispatched": true
}
Want your n8n automation or AI agent to handle missed-call text-backs instead of the Android app's built-in SMS template? The Pro Edition includes an Outbound Event Forwarder that transmits callers directly to your custom webhook.
Enable "Mute Native Auto-Reply" in the Android app's Outbound Forwarder settings. When a call is missed, the phone will forward the caller payload to your n8n webhook and suppress its native SMS template. Your n8n automation can then formulate a personalized AI response and send it back through your phone's SIM via Cloud Relay or Local Gatewayβguaranteeing exactly one text is delivered.
Store multiple production and staging endpoints right in the app. Easily switch active endpoints from a dropdown menu, add new webhook URLs on the fly, and run instant "Test Ping" verifications with live status code and latency indicators.
When an incoming call goes unanswered, the phone immediately dispatches an HTTP POST request to your selected webhook URL:
{
"event": "MISSED_CALL",
"phone": "+15551234567",
"caller_name": "John Doe",
"sim_slot": 1,
"timestamp": 1789658400000,
"device_id": "DEVICE-ANDROID-UUID"
}
| Field | Type | Description |
|---|---|---|
event |
string | Constant MISSED_CALL indicating an unanswered incoming call. |
phone |
string | E.164 phone number of the missed caller. |
caller_name |
string | Caller ID name resolved from phone contacts or network, if available. |
sim_slot |
integer | Physical SIM slot (1 or 2) that received the missed call. |
timestamp |
long | Unix epoch timestamp in milliseconds when the call was missed. |
device_id |
string | Hardware device identifier running Missed Call Auto SMS. |
Webhook Node receives the MISSED_CALL payload.CRM / Airtable / HubSpot Node checks if the contact is an existing client or hot lead.OpenAI / Claude Node drafts a customized, context-aware reply.HTTP Request Node calls https://missedcallautosms.com/api/dispatch-sms with the drafted message.Consumer Android apps get suspended when the screen locks. Missed Call Auto SMS registers an Android Foreground Sticky Service with a persistent notification bar icon and acquires partial CPU wake locks during incoming call events. It will never be killed by Android memory managers.
Mobile carriers (Verizon, AT&T, T-Mobile) will flag consumer SIMs if hundreds of texts fire in seconds. Our engine enforces a strict 3.5-second sequential pacing interval and a 20 SMS/minute burst ceiling. Your phone line remains 100% compliant and healthy.
If the phone momentarily enters a basement or elevator with zero cell service, outbound dispatches do not vanish. They are queued to an encrypted SQLite database via Android WorkManager and automatically flushed the instant cellular towers re-acquire connection.
Central Cloud Relay leverages Google Firebase Cloud Messaging at HIGH_PRIORITY level. This bypasses Android Doze mode and wakes the device radio within milliseconds, ensuring real-time response times for critical lead generation workflows.
Certain Android manufacturers (Samsung OneUI, Xiaomi MIUI) aggressively throttle background apps unless instructed otherwise. On your appliance device, navigate to Settings β Apps β Missed Call Auto SMS β Battery β Select "Unrestricted" to ensure zero sleep interruptions.
| Status Code | Meaning | Solution |
|---|---|---|
200 OK |
Message Queued / Dispatched | Carrier dispatch initiated successfully. |
400 Bad Request |
Missing Phone or Body | Ensure destination phone number is provided in valid international format. |
401 Unauthorized |
Missing License Key | Provide your Pro License Key in the X-License-Key header. |
403 Forbidden |
Standard Tier Key / Invalid | Feature is exclusive to Pro Edition. Upgrade your key or verify formatting. |
404 Not Found |
Device Token Not Registered | Open the Missed Call Auto SMS Pro app on your phone once to register the device FCM token. |
429 Rate Limited |
SIM Burn Safeguard Triggered | Pacing protection active. Space out automated webhook triggers by 3.5 seconds. |
Unlike primitive auto-responders that stop after a single canned text, the Conversational AI SMS Engine holds complete multi-turn discovery conversations. It qualifies contractor leads, verifies service addresses, answers pricing questions, and sends calendar booking links directly from your real carrier SIM number (Verizon, AT&T, T-Mobile).
Automation should never collide with your active sales process. The moment the business owner or technician manually sends a text message from their Android phone dialer or SMS app, our background thread listener flags the conversation and pauses AI replies for 30 minutes. You close the customer without robotic interference.
Process an incoming SMS message through the trade-tuned AI engine. If human takeover is active, the engine returns human_takeover_active: true and silences the AI.
curl -X POST https://missedcallautosms.com/api/sms/chat-turn \
-H "Content-Type: application/json" \
-H "X-License-Key: MCAS-PRO-DEMO-89F2" \
-d '{
"fromPhone": "+15551234567",
"customerMessage": "Hi, do you have someone available for an emergency boiler repair today in Newark?",
"businessName": "Apex Plumbing & Heating",
"serviceTrade": "Emergency Plumbing & Water Heaters",
"sim_slot": 0,
"humanTakeoverMinutes": 30
}'
const res = await fetch('https://missedcallautosms.com/api/sms/chat-turn', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-License-Key': 'MCAS-PRO-DEMO-89F2'
},
body: JSON.stringify({
fromPhone: '+15551234567',
customerMessage: 'Hi, do you have someone available for an emergency boiler repair today in Newark?',
businessName: 'Apex Plumbing & Heating',
serviceTrade: 'Emergency Plumbing & Water Heaters',
sim_slot: 0,
humanTakeoverMinutes: 30
})
});
const data = await res.json();
console.log('AI Response:', data);
import requests
url = "https://missedcallautosms.com/api/sms/chat-turn"
headers = {
"Content-Type": "application/json",
"X-License-Key": "MCAS-PRO-DEMO-89F2"
}
payload = {
"fromPhone": "+15551234567",
"customerMessage": "Hi, do you have someone available for an emergency boiler repair today in Newark?",
"businessName": "Apex Plumbing & Heating",
"serviceTrade": "Emergency Plumbing & Water Heaters",
"sim_slot": 0,
"humanTakeoverMinutes": 30
}
res = requests.post(url, json=payload, headers=headers)
print(res.json())
Missed Call Auto SMS combines instant SMS auto-replies via native Android SIM with an autonomous GridAI voice receptionist via conditional carrier forwarding:
POST /api/voice/webhook. The server retrieves the contractor's profile and returns a dynamic system prompt containing their business name, technician name, service trade, and custom greeting.send_sms tool to send a text confirmation from the contractor's phone while the caller is still on the line!
The Android app's CarrierForwardingManager auto-detects the active SIM carrier and triggers the native phone dialer with the appropriate MMI/USSD prefix:
| Carrier / MVNO | Forwarding Prefix (Activation) | Deactivation Code | Behavior |
|---|---|---|---|
| Verizon / Visible / US Cellular | *71{10-digit-number} |
*73 |
Rings handset for 15s; forwards on no-answer or busy. |
| AT&T / Cricket / Consumer Cellular | *004*{10-digit-number}# |
##004# |
Conditional forwarding for unanswered, busy, or unreachable calls. |
| T-Mobile / Mint Mobile / Metro | **61*{10-digit-number}**15# |
##004# |
Explicit 15-second timer before forwarding to AI endpoint. |
| Generic US Carrier / Landline | *71{10-digit-number} |
*73 |
Standard North American conditional call forwarding standard. |
/api/voice/webhook
Invoked in real-time by the GridAI voice pipeline on call initiation (assistant-request), mid-call tool invocations (send_sms), and call termination (end-of-call-report). Dynamically returns the tailored prompt and processes transcripts.
/api/voice/custom-greeting
Allows the mobile app or dashboard to customize the introductory sentence spoken by the AI receptionist and update business trade metadata.
/api/voice/cancel-subscription
1-click self-service endpoint that terminates the recurring $9.99/mo Voice Add-On Stripe subscription and returns the carrier deactivation code (*73 or ##004#) for immediate dialer rollback.
/api/voice/provision
Internal provisioning hook triggered by Stripe checkout webhook when a contractor activates the AI Voice Receptionist ($9.99/mo add-on) plan.
curl -X POST https://missedcallautosms.com/api/voice/custom-greeting \
-H "Content-Type: application/json" \
-d '{
"businessName": "Apex Plumbing & Heating",
"ownerName": "Dave Miller",
"serviceTrade": "Emergency Plumbing & Water Heaters",
"customGreeting": "Thanks for calling Apex Plumbing! Our technicians are on a service job. How can I help you right now?"
}'
const response = await fetch('https://missedcallautosms.com/api/voice/custom-greeting', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
businessName: 'Apex Plumbing & Heating',
ownerName: 'Dave Miller',
serviceTrade: 'Emergency Plumbing & Water Heaters',
customGreeting: 'Thanks for calling Apex Plumbing! Our technicians are on a service job. How can I help you right now?'
})
});
const data = await response.json();
console.log('Voice receptionist configured:', data);
import requests
url = "https://missedcallautosms.com/api/voice/custom-greeting"
payload = {
"businessName": "Apex Plumbing & Heating",
"ownerName": "Dave Miller",
"serviceTrade": "Emergency Plumbing & Water Heaters",
"customGreeting": "Thanks for calling Apex Plumbing! Our technicians are on a service job. How can I help you right now?"
}
res = requests.post(url, json=payload)
print(res.json())
The Agency Fleet API empowers SaaS agencies and marketing partners to automate client onboarding, customize client portal themes, and adjust appliance parameters remotely via action commands.
Setup white-label brand palettes, 10 curated color themes, vanity domain, and app title.
Instantly issue pre-licensed client keys tied to your agency slug with custom business metadata.
Update GridAI voice prompts, SMS templates, forwarding codes, and lock handset settings over-the-air.
curl -X POST https://missedcallautosms.com/api/agency/manage \
-H "Content-Type: application/json" \
-d '{
"action": "create_agency",
"agencyId": "apex_media",
"agencyName": "Apex Media Solutions",
"email": "partners@apexmedia.com",
"appName": "Apex Auto-SMS",
"theme": {
"primaryColor": "#2563EB",
"accentColor": "#38BDF8"
}
}'
curl -X POST https://missedcallautosms.com/api/agency/manage \
-H "Content-Type: application/json" \
-d '{
"action": "agency_generate_key",
"agencyId": "apex_media",
"tier": "PRO",
"clientName": "Miller Electrical",
"clientEmail": "dave@millerelectric.com"
}'
curl -X POST https://missedcallautosms.com/api/agency/manage \
-H "Content-Type: application/json" \
-d '{
"action": "agency_save_client_remote_config",
"agencyId": "apex_media",
"licenseKey": "MCAS-AG-92F1",
"voice": {
"voiceReceptionistEnabled": true,
"voiceAgentName": "Riley",
"model": "claude-3-5-sonnet",
"customGreeting": "Thanks for calling Miller Electrical! How can we assist you?",
"systemPrompt": "You are a professional licensed electrician intake receptionist. Confirm street address phonetically.",
"emergencyTransferNumber": "+15559876543"
},
"handset": {
"messageTemplate": "Sorry we missed your call! How can our electricians help?",
"jitterDelaySeconds": 15,
"muteNativeAutoReply": false,
"outboundWebhookEnabled": true,
"selectedOutboundWebhookUrl": "https://services.leadconnectorhq.com/hooks/...",
"lockHandsetSettings": true
}
}'
curl -X POST https://missedcallautosms.com/api/agency/manage \
-H "Content-Type: application/json" \
-d '{
"action": "agency_partner_update_settings",
"agencyId": "apex_media",
"customDomain": "portal.apexmedia.com",
"logoUrl": "https://apexmedia.com/logo.png",
"iconUrl": "https://apexmedia.com/favicon.png",
"primaryColor": "#059669",
"accentColor": "#34D399",
"tagline": "Autonomous 24/7 AI Receptionist & Speed-To-Lead",
"supportEmail": "support@apexmedia.com",
"supportPhone": "+18005550199"
}'
Enables building custom client dashboards or integrating client call metrics directly into your proprietary SaaS CRM.
curl -X POST https://missedcallautosms.com/api/portal/manage \
-H "Content-Type: application/json" \
-d '{
"action": "get_portal_data",
"licenseKey": "MCAS-PRO-DEMO-89F2",
"agencySlug": "apex_media"
}'
curl -X POST https://missedcallautosms.com/api/portal/manage \
-H "Content-Type: application/json" \
-d '{
"action": "update_portal_config",
"licenseKey": "MCAS-PRO-DEMO-89F2",
"customGreeting": "Thanks for calling Apex Plumbing! Our techs are on a job. How can we help?",
"voiceReceptionistEnabled": true
}'
curl -X POST https://missedcallautosms.com/api/portal/manage \
-H "Content-Type: application/json" \
-d '{
"action": "toggle_auto_recharge",
"licenseKey": "MCAS-PRO-DEMO-89F2",
"enabled": true,
"packAmount": 10
}'
Get the Perpetual Pro Gateway for a $299.99 lifetime license with 1-Year Cloud Relay API maintenance included. Zero carrier 10DLC delays, physical SIM execution, unlimited automations, and full webhook access.