Why Instant Form Notifications?
Every form submission represents a potential customer, lead, or important feedback. Yet most form platforms only send email notifications that get buried in your inbox alongside newsletters, spam, and promotional messages. By the time you notice a new contact form submission, hours or even days may have passed. Studies show that responding to a lead within 5 minutes makes you 21 times more likely to qualify that lead compared to waiting 30 minutes.
With One-Ping, every form submission triggers an instant notification on the channels you actually pay attention to. Your phone buzzes with a Telegram message showing the form data. Your team's Slack channel gets a formatted alert. And you still get the email as a backup. The result: faster response times, more qualified leads, and a better experience for everyone who fills out your forms.
Compatible platforms: This guide covers Typeform, Google Forms, custom HTML forms, and any form builder that supports webhooks. If your platform can send a webhook, it works with One-Ping.
Step-by-Step Setup
Choose Your Form Platform
The setup process varies slightly depending on which form builder you use. Typeform has built-in webhook support in all paid plans. Google Forms requires a Google Apps Script to send webhooks. Custom HTML forms submit directly to your server, which gives you the most flexibility. Other platforms like JotForm, Tally, and Gravity Forms also support webhooks. Identify your platform and follow the relevant instructions below.
Set Up One-Ping Notification Channels
Log in to your One-Ping dashboard and configure the channels where you want to receive form alerts. For form submissions, the most effective channels are: Telegram for instant mobile alerts (you will know within seconds), Slack for team visibility (everyone on the sales or support team sees it), and Email as a backup record. Configure at least two channels for redundancy. Follow our multi-channel setup guide if you need help configuring channels.
Connect Your Form to One-Ping
This is the core step. You need to get form submission data from your form platform to the One-Ping API. The approach depends on your platform: for forms with native webhook support (Typeform, JotForm), you can use an n8n workflow as a bridge. For Google Forms, you will add a small Apps Script. For custom forms, you call the One-Ping API directly from your backend. Detailed code for each approach is below.
Format Your Notifications
A notification that just says "New form submission" is not very useful. Include the key form fields in your notification so you can see the important details without opening another tool. For a contact form, include the name, email, and message. For a signup form, include the email and plan selected. Use channel-specific formatting to make the data easy to scan: Slack sections for structured data, Telegram HTML for clean formatting, and email HTML for a full record.
Test and Refine
Submit a test entry through your form and verify the notification arrives on all configured channels. Check that all form fields are included, the formatting is readable, and the notification arrives within a few seconds. Adjust the message content and formatting based on what information you actually need to see at a glance versus what can be a click away in your form platform's responses page.
Custom HTML Form with One-Ping
If you have a custom form on your website, you can call the One-Ping API directly from your backend when the form is submitted. This is the most straightforward integration.
Backend Handler (Node.js / Express)
const express = require('express'); const app = express(); app.use(express.json()); app.post('/api/contact', async (req, res) => { const { name, email, message, phone } = req.body; // Save to database (your existing logic) // await db.saveSubmission({ name, email, message, phone }); // Send instant notification via One-Ping await fetch('https://api.one-ping.com/send', { method: 'POST', headers: { 'Authorization': `Bearer ${process.env.ONEPING_API_KEY}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ message: `New contact form:\nName: ${name}\nEmail: ${email}\nMessage: ${message}`, channels: ['telegram', 'slack', 'email'], metadata: { slack: { blocks: [ { type: 'header', text: { type: 'plain_text', text: 'New Contact Form Submission' }}, { type: 'section', fields: [ { type: 'mrkdwn', text: `*Name:*\n${name}` }, { type: 'mrkdwn', text: `*Email:*\n${email}` }, { type: 'mrkdwn', text: `*Phone:*\n${phone || 'N/A'}` } ]}, { type: 'section', text: { type: 'mrkdwn', text: `*Message:*\n${message}` }} ] }, email: { to: '[email protected]', subject: `New Contact: ${name}` } } }) }); res.json({ success: true, message: 'Thank you! We will get back to you soon.' }); });
Typeform Integration
Typeform supports webhooks on paid plans. You can use an n8n workflow to receive the Typeform webhook and forward it to One-Ping, or build a simple server endpoint.
n8n Workflow Approach
In n8n, create a workflow with these nodes:
- Typeform Trigger node -- connects to your Typeform account and fires on new submissions.
- Set node -- extracts the fields you want from the Typeform response.
- HTTP Request node -- calls the One-Ping API with the formatted notification.
This approach requires zero custom code and can be set up in under 5 minutes if you already have n8n running.
Direct Server Endpoint
# Python: Typeform webhook handler from flask import Flask, request import requests, os app = Flask(__name__) @app.route('/webhooks/typeform', methods=['POST']) def typeform_webhook(): data = request.get_json() answers = data.get('form_response', {}).get('answers', []) # Extract answers into a readable format fields = {} for answer in answers: field_title = answer['field']['ref'] if answer['type'] == 'text': fields[field_title] = answer['text'] elif answer['type'] == 'email': fields[field_title] = answer['email'] # Send notification message_lines = [f'{k}: {v}' for k, v in fields.items()] requests.post( 'https://api.one-ping.com/send', headers={'Authorization': f'Bearer {os.environ["ONEPING_API_KEY"]}'}, json={ 'message': 'New Typeform submission:\n' + '\n'.join(message_lines), 'channels': ['telegram', 'slack'] } ) return '', 200
Google Forms Integration
Google Forms does not have built-in webhooks, but you can use Google Apps Script to trigger a notification on every submission. Open your Google Form, click the three-dot menu, select Script editor, and paste this code:
// Google Apps Script: Form submission trigger function onFormSubmit(e) { const responses = e.response.getItemResponses(); let formData = []; responses.forEach(function(response) { formData.push( response.getItem().getTitle() + ': ' + response.getResponse() ); }); const payload = { message: 'New Google Form submission:\n' + formData.join('\n'), channels: ['telegram', 'slack'] }; const options = { method: 'post', contentType: 'application/json', headers: { 'Authorization': 'Bearer YOUR_API_KEY' }, payload: JSON.stringify(payload) }; UrlFetchApp.fetch('https://api.one-ping.com/send', options); } // Run this once to set up the trigger function createTrigger() { ScriptApp.newTrigger('onFormSubmit') .forForm(FormApp.getActiveForm()) .onFormSubmit() .create(); }
After pasting the code, run the createTrigger function once to set up the form submission trigger. Google will ask for authorization to access the form and make external requests. Once authorized, every new form submission will send a notification through One-Ping.
Security note: Replace YOUR_API_KEY with your actual One-Ping API key. For better security, store the API key in Google Apps Script's Properties Service instead of hardcoding it in the script.
Best Practices
- Include the form name: If you have multiple forms, always include which form was submitted in the notification message so you can distinguish between contact forms, support requests, and signups.
- Filter out spam: Add basic spam filtering before sending notifications. Check for honeypot fields, validate email formats, and skip suspicious submissions to avoid alert fatigue.
- Link back to the full response: Keep your notification concise but include a link to the full submission in your form platform's response viewer for the complete context.
- Send confirmations to submitters: Use the email channel to send an automatic confirmation to the person who submitted the form, so they know their message was received.
- Track response times: Use One-Ping's logs to measure how quickly your team responds to form submissions. This data helps you improve your lead conversion process.