Tender for custom node development for USSD interaction

Tender:

Development of a Reusable, Open-Source USSD Framework via Custom n8n Nodes

Date of Issue: October 25, 2025

1. Introduction & Executive Summary

agriBORA is developing a robust, omni-channel customer engagement platform. A core component of this platform is the ability to offer services via USSD menus. To ensure scalability, maintainability, and rapid development of future USSD applications, we are seeking a skilled developer to build a suite of custom, reusable nodes within our existing n8n workflow automation environment.

This project will abstract the complexities of USSD session management and provider-specific API formats into a set of intuitive, high-level nodes. The end goal is to empower our team to build complex USSD flows visually within n8n, without needing to handle the underlying stateful logic or API integrations for each new service.

Crucially, this project will be developed as a high-quality, open-source tool for the benefit of the wider n8n community.

2. Project Background

Our current architecture utilizes:

  • n8n as the central engine for workflow automation and process orchestration.

  • Redis as a high-performance cache for managing temporary data, such as user sessions.

We require a solution that integrates seamlessly into this stack. The initial USSD API providers to be supported is Africa’s Talking, but the solution must be designed with extensibility in mind to accommodate other providers in the future.
The Africa’s Talking API documentation and free sandbox environment is available under https://account.africastalking.com/auth/login and https://developers.africastalking.com/

3. Scope of Work & Core Deliverables

The primary deliverable is a functional, well-documented suite of custom n8n nodes that, when used together, provide a complete framework for building USSD applications.

The developer will be responsible for designing, building, testing, and documenting the following four (4) custom n8n nodes:


3.1. Deliverable 1: USSD Trigger Node

This node will serve as the standardized entry point for all USSD interactions.

  • Functionality:

  • Acts as a trigger, initiating the workflow when a USSD provider sends a webhook.

  • Provider Abstraction: Must include a dropdown to select the USSD Provider (initial options: “Africa’s Talking”, “Beem Africa”).

  • Automatically parses the provider-specific incoming webhook payload and outputs a single, standardized JSON object (e.g., { “sessionId”: “…”, “phoneNumber”: “…”, “userInput”: “…”, “provider”: “africastalking” }).

  • Session Initiation: On the first request of a session (i.e., when userInput is empty), it must automatically create a new session entry in the connected Redis instance.


3.2. Deliverable 2: USSD Menu Node

This node will be the primary tool for building navigation menus.

  • Functionality:

  • Takes a menu text as input (e.g., “Welcome to agriBORA. \n1. Check Balance \n2. Market Prices”).

  • Provides a simple, dynamic UI within the n8n editor to map user inputs (e.g., “1”, “2”, “*”) to the node’s distinct output anchors.

  • Reads the standardized userInput and routes the n8n execution to the corresponding output.

  • Sends the menu text as a “continue” response to the user via the appropriate provider API.

  • Updates the user’s state in Redis to reflect their current position in the menu.


3.3. Deliverable 3: USSD Input Node

This node will handle the collection of free-text or numeric input from the user.

  • Functionality:

  • Takes a prompt text as input (e.g., “Please enter your National ID number:”).

  • Sends the prompt to the user as a “continue” response.

  • Saves the user’s subsequent text input to a specified variable within the n8n workflow data (e.g., a variable named id_number).

  • Input Validation: Must include built-in, configurable validation rules (e.g., “Is Numeric”, “Min/Max Length”, “Regex Pattern”). If validation fails, the node should automatically re-display the prompt with a customizable error message.


3.4. Deliverable 4: USSD Response Node

This node will be the standard mechanism for ending a USSD session.

  • Functionality:

  • Takes a final message text as input (e.g., “Thank you for using our service.”).

  • Provider Abstraction: Automatically formats the response with the correct “end session” prefix (e.g., END for Africa’s Talking, FB for Beem Africa) based on the provider specified in the trigger.

  • Sends the final message to the user.

  • Session Cleanup: Must automatically delete the user’s session data from the Redis cache.


4. Technical Requirements

  • All nodes must be developed in TypeScript using the standard n8n custom node development framework.

  • The solution must integrate with an external Redis instance for all session management. The Redis connection details (host, port, password) must be configurable via a new n8n Credential type.

5. Non-Functional Requirements

  • Reusability & Maintainability: The code must be clean and structured in a way that allows for easy extension and maintenance.

  • Performance: All Redis interactions must be highly efficient to ensure low latency for the end-user.

  • Error Handling: The nodes must gracefully handle potential errors (e.g., a failed Redis connection, invalid API response) and expose these errors clearly within the n8n workflow.

  • Multi-language Support: The nodes should be designed to support multiple languages for menu texts, prompts, and response messages, ideally through dynamic content retrieval based on session data or configuration.

6. Code Quality & Open Source Standards

  • Compliance with n8n Standards: The code for all nodes must adhere to the official n8n contribution guidelines for community nodes. The ultimate goal is for this node suite to be of sufficient quality to be accepted into the official n8n-nodes-community repository or even as a core integration. This includes following all prescribed coding styles, conventions, and architectural patterns.

  • Open Source Documentation: The project will be open-sourced on GitHub. The code must be documented to the highest standards, including:

  • A comprehensive README.md file explaining the project’s purpose, installation, configuration, and usage.

  • Clear, well-commented code that explains the “why” behind complex logic, not just the “what.”

  • An appropriate open-source license (e.g., MIT).

  • Testing: The developer is expected to provide unit tests for key functionalities to ensure robustness and facilitate future development.

7. Developer Qualifications

  • Proven experience in developing custom n8n nodes, ideally with one or more nodes accepted as a community node.

  • Strong proficiency in TypeScript and Node.js, with a deep understanding of modern best practices.

  • Experience contributing to open-source projects.

  • Experience working with Redis.

  • Demonstrable experience integrating with third-party REST APIs.

  • Excellent communication skills and ability to work independently.

8. Proposal Requirements

Interested developers should submit a proposal containing the following:

  1. A brief cover letter introducing yourself and your relevant experience, specifically highlighting any contributions to open-source projects or n8n.

  2. Links to your portfolio, GitHub profile, and/or examples of previous n8n custom node projects.

  3. A proposed technical approach to the project.

  4. A detailed project timeline with key milestones.

  5. A fixed-bid cost estimate for the entire scope of work.

  6. A brief statement acknowledging the open-source and n8n-compliance requirements.

Submit your proposal to [email protected]

Looking forward to your applications and replies!

3 Likes

Hey Nicolas,

We went through your detailed tender about developing the reusable, open-source USSD framework with custom n8n nodes including the USSD Trigger, Menu, Input, and Response nodes, along with Redis integration and open-source compliance.

Before sending over a formal proposal, we’d like to jump on a quick call to clarify a few points around session handling, provider abstraction, and long-term extensibility just to ensure we are on the same page.

You can pick a slot that works for you here: Calendly

We’re autoagentify.co , a team focused on building real-world automation systems using n8n, Make, and custom code where no-code reaches its limits.

We’ve attached a few examples in the email we sent, and you can also explore more about us here: 👉 https://www.instagram.com/autoagentify.co/

Thanks!

Best regards,
Shayan | CEO & Founder @ autoagentify.co

Hey Nicolas, :waving_hand:

I’ve just sent you an email with my details and proposal introduction. Let’s discuss further — excited about the opportunity to collaborate on this project!

Best,
Muhammad Bin Zohaib
Certified n8n Developer (Level 1 & 2) | www.muhammadz.fun

Hello @nicolas.caspari ,

We have read your requirement deeply and I with my team is ready to share the proposal in detail with you. I reccomend if we can connect over a small quick call to discuss this in detail. Know more about us Upwork and Deligence Technologies.

Diya ~ Deligence technologies

Book a call

Hey nicolas.caspari,

I got you, I have been building all forms of automations for the past 2 years and have built 100s of flows for my clients. Have worked with all sorts of companies and gotten them 10s of thousands in revenue or savings by strategic flows. When you decide to work with me, not only will I build this flow out, but also give you a free consultation like I have for all my clients that led to these revenue jumps.

I have built a similar workflow like this for one of my clients. I can not only share that but also how you can streamline processes in your company for faster operations. All this with no strings attached on our first call.

Here, have a look at my website and you can book a call with me there!

Talk soon!

Hi @nicolas.caspari ,

I’ve just submitted my proposal for developing the four USSD custom nodes, with Redis integration, i18n support, and alignment to the community node verification standards considered.

I also included a brief overview of a working PoC (Trigger Node + Menu Node with AT emulator to send service code) to demonstrate my capability.

Thank you for your time reading my proposal, and I am looking forward to discussing further details and helping bring this great initiative to life.

Hi everyone. Just a quick update on the tender! We have closed the application window and have chosen a contractor from this community. The work is already ongoing and we will be sharing results soon!
Thank you to everyone who took the time to apply for the tender!