HTML Hosting Form Submission client for Posty5 .NET SDK - manage form submissions from HTML hosting pages
$ dotnet add package Posty5.HtmlHostingFormSubmissionTrack, manage, and process form submissions from your Posty5-hosted HTML pages with the .NET SDK. This package provides a client for managing form submissions with features like status tracking, Google Sheets integration, navigation, and comprehensive filtering.
Posty5 is a comprehensive suite of free online tools designed to enhance your digital marketing and social media presence. With over 4+ powerful tools and counting, Posty5 provides everything you need to:
Posty5 empowers businesses, marketers, and developers to streamline their online workflows—all from a unified control panel.
Learn more: https://posty5.com
Posty5.HtmlHostingFormSubmission is a specialized tool package for managing form submissions captured from HTML pages hosted on the Posty5 platform. It enables developers to build powerful form management systems with status workflows and data export capabilities.
This package works seamlessly with other Posty5 SDK packages:
Posty5.HtmlHosting to create and manage HTML pages with formsPosty5.HtmlHostingVariables to inject dynamic data into formsInstall via NuGet Package Manager:
dotnet add package Posty5.HtmlHostingFormSubmission
Or via Package Manager Console:
Install-Package Posty5.HtmlHostingFormSubmission
Here's a minimal example to get you started:
using Posty5.Core.Configuration;
using Posty5.Core.Http;
using Posty5.HtmlHostingFormSubmission;
using Posty5.HtmlHostingFormSubmission.Models;
// Initialize the HTTP client with your API key
var options = new Posty5Options
{
ApiKey = "your-api-key" // Get from https://studio.posty5.com/account/settings?tab=APIKeys
};
var httpClient = new Posty5HttpClient(options);
// Create the Form Submission client
var formSubmissions = new HtmlHostingFormSubmissionClient(httpClient);
// List all submissions for a specific HTML page
var submissions = await formSubmissions.ListAsync(
new ListFormSubmissionsParams { HtmlHostingId = "your-html-page-id" },
new PaginationParams { PageNumber = 1, PageSize = 20 }
);
Console.WriteLine($"Found {submissions.Pagination.TotalItems} submissions");
foreach (var submission in submissions.Data)
{
Console.WriteLine($"#{submission.Numbering}: {submission.Status}");
// Form data is a Dictionary<string, object>
if (submission.Data.TryGetValue("email", out var email))
{
Console.WriteLine($"Email: {email}");
}
}
// Get a specific submission
var detail = await formSubmissions.GetAsync("submission-id-123");
Console.WriteLine($"Submission Status: {detail.Status}");
// Get navigation
var nav = await formSubmissions.GetNextPreviousAsync("submission-id-123");
if (nav.Next != null)
{
Console.WriteLine($"Next Submission ID: {nav.Next.Id}");
}
Retrieve complete details of a specific form submission by ID.
Parameters:
id (string): The unique submission IDReturns: Task<FormSubmissionModel> - Complete submission details
Example:
var submission = await formSubmissions.GetAsync("submission-id-123");
// Access form data
Console.WriteLine($"Status: {submission.Status}");
foreach (var field in submission.Data)
{
Console.WriteLine($"{field.Key}: {field.Value}");
}
// Review status history
foreach (var history in submission.StatusHistory)
{
Console.WriteLine($"{history.Status} - {history.ChangedAt}");
if (!string.IsNullOrEmpty(history.Notes))
{
Console.WriteLine($" Notes: {history.Notes}");
}
}
Search and filter form submissions with advanced pagination and filtering options.
Parameters:
listParams (ListFormSubmissionsParams): Filter criteria
HtmlHostingId (string, required): HTML page ID to get submissions fromFormId (string?): Filter by specific form IDNumbering (string?): Search by submission numberStatus (string?): Filter by statusFilteredFields (string?): Comma-separated field names to enable search onpagination (PaginationParams?, optional): Pagination options
PageNumber (int): Page number (default: 1)PageSize (int): Items per page (default: 10)Returns: Task<PaginationResponse<FormSubmissionModel>>
Example:
// Get all submissions for an HTML page
var allSubmissions = await formSubmissions.ListAsync(
new ListFormSubmissionsParams { HtmlHostingId = "html-page-123" },
new PaginationParams { PageNumber = 1, PageSize = 50 }
);
Console.WriteLine($"Total: {allSubmissions.Pagination.TotalItems}");
foreach (var sub in allSubmissions.Data)
{
Console.WriteLine($"#{sub.Numbering}: {sub.Status}");
}
// Filter by status - get only new submissions
var newSubmissions = await formSubmissions.ListAsync(new ListFormSubmissionsParams
{
HtmlHostingId = "html-page-123",
Status = "New"
});
// Filter by specific form on a page
var formSubmissionsList = await formSubmissions.ListAsync(new ListFormSubmissionsParams
{
HtmlHostingId = "html-page-123",
FormId = "contact-form"
});
Get references to the next and previous submissions for easy navigation.
Parameters:
id (string): Current submission IDReturns: Task<NextPreviousSubmissionsResponse>
Previous (SubmissionRef?): Previous submission referenceNext (SubmissionRef?): Next submission referenceExample:
var nav = await formSubmissions.GetNextPreviousAsync("submission-id-123");
if (nav.Previous != null)
{
Console.WriteLine($"← Previous: #{nav.Previous.Numbering} (ID: {nav.Previous.Id})");
}
if (nav.Next != null)
{
Console.WriteLine($"→ Next: #{nav.Next.Numbering} (ID: {nav.Next.Id})");
}
Permanently delete a form submission.
Parameters:
id (string): Submission ID to deleteReturns: Task
Example:
await formSubmissions.DeleteAsync("submission-id-123");
Console.WriteLine("Submission deleted");
All methods may throw exceptions from Posty5.Core.Exceptions.
using Posty5.Core.Exceptions;
try
{
var submission = await formSubmissions.GetAsync("invalid-id");
}
catch (Posty5AuthenticationException ex)
{
Console.WriteLine("Invalid API key");
}
catch (Posty5NotFoundException ex)
{
Console.WriteLine("Submission not found");
}
catch (Posty5Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
This SDK ecosystem contains the following tool packages:
| Package | Description | Version | NuGet |
|---|---|---|---|
| Posty5.Core | Core HTTP client and models | 1.0.0 | 📦 NuGet |
| Posty5.ShortLink | URL shortener client | 1.0.0 | 📦 NuGet |
| Posty5.QRCode | QR code generator client | 1.0.0 | 📦 NuGet |
| Posty5.HtmlHosting | HTML hosting client | 1.0.0 | 📦 NuGet |
| Posty5.HtmlHostingVariables | Variable management | 1.0.0 | 📦 NuGet |
| Posty5.HtmlHostingFormSubmission | Form submission management | 1.0.0 | 📦 NuGet |
| Posty5.SocialPublisherWorkspace | Social workspace management | 1.0.0 | 📦 NuGet |
| Posty5.SocialPublisherTask | Social publishing task client | 1.0.0 | 📦 NuGet |
MIT License - see LICENSE file for details.
Made with ❤️ by the Posty5 team