Skip to main content

Overview

The PQRSD (Peticiones, Quejas, Reclamos, Sugerencias y Denuncias) system is a comprehensive citizen engagement platform that enables residents to submit requests, complaints, claims, suggestions, and reports to ESP Santa Fe de Antioquia. This feature ensures transparent communication between the organization and its stakeholders.

What is PQRSD?

PQRSD stands for:
  • Peticiones (Requests)
  • Quejas (Complaints)
  • Reclamos (Claims)
  • Sugerencias (Suggestions)
  • Denuncias (Reports/Denunciations)

User Workflow

1

Citizen Submits Request

Citizens access the public form at /formular-pqrsd and provide:
  • Full name and email address
  • Subject line describing the issue
  • Detailed description
  • Request type (P, Q, R, S, or D)
  • Optional file attachment
2

System Generates Tracking Code

Upon submission, the system generates a unique GUID tracking code that citizens can use to reference their request.
3

Admin Reviews Request

Administrators view all pending requests in the admin dashboard at /PQRSDs, where they can:
  • View request details
  • Track submission dates
  • Monitor response status
4

Admin Responds

Administrators compose and submit official responses, which:
  • Mark the request as answered
  • Record the response date
  • Store the reply text

Key Features

Public Submission

Open access form allowing any citizen to submit requests without authentication

File Attachments

Support for document uploads to provide evidence or additional context

Status Tracking

Track whether requests have been answered with timestamps

Response Management

Admin interface for reviewing and responding to citizen requests

Data Model

The PQRSD entity stores comprehensive information about each citizen request:
public class PQRSD
{
    public Guid PQRSDID { get; set; }              // Unique tracking identifier
    public string NamePerson { get; set; }         // Citizen's name
    public string Email { get; set; }              // Contact email
    public string PQRSDName { get; set; }          // Subject/title
    public string Description { get; set; }        // Detailed description
    public string NameSotypeOfRequest { get; set; } // Request type (P/Q/R/S/D)
    public DateTime DateCreate { get; set; }       // Submission date
    public string File { get; set; }               // Attached file path
    
    // Response tracking
    public string Reply { get; set; }              // Admin response
    public Boolean IsAnswered { get; set; }        // Response status
    public DateTime AnswerDate { get; set; }       // Response date
}

Controller Actions

The PQRSDsController manages all PQRSD operations:

Public Routes

Purpose: Allow citizens to submit new requestsAccess: Public (no authentication required)Process:
  1. GET displays the submission form
  2. POST validates and creates the request
  3. Redirects to confirmation page with tracking code
[Route("formular-pqrsd")]
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create(PQRSDCreateDto model)
{
    if (ModelState.IsValid)
    {
        var _create = await _iPQSDService.Create(model);
        _StatusMessaje = _create.PQRSDID;
        return RedirectToAction("TypePQRSD");
    }
    return View(model);
}
Purpose: Display confirmation page with tracking codeAccess: PublicShows the generated GUID that citizens can use to reference their request in future communications.

Admin Routes

Purpose: Display all PQRSD submissionsAccess: SuperAdmin, AdminFeatures:
  • View all requests with key details
  • Filter by answered/unanswered status
  • See submission dates formatted in Spanish locale
[Authorize(Roles = "SuperAdmin,Admin")]
public IActionResult Index()
{
    var _getAll = _iPQSDService.GetAll();
    var _pqrsd = from a in _getAll
                select new ModelViewPQRSD
                {
                    PQRSDID = a.PQRSDID,
                    NamePerson = a.NamePerson,
                    Email = a.Email,
                    PQRSDName = a.PQRSDName,
                    NameSotypeOfRequest = a.NameSotypeOfRequest,
                    IsAnsweredPQRSD = a.IsAnswered,
                    DateCreate = a.DateCreate.ToString("MMMM dd, yyyy",
                        CultureInfo.CreateSpecificCulture("es-CO"))
                };
    return View(_pqrsd);
}
Purpose: View complete request details including responseAccess: SuperAdmin, AdminDisplays full information including description, attachments, and admin responses.
Purpose: Submit administrative response to a requestAccess: SuperAdmin, AdminProcess:
  1. Accepts reply text and PQRSD ID
  2. Updates IsAnswered status to true
  3. Records answer date and time
  4. Redirects to request list
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Review(ReviewCreateDto model)
{
    if (ModelState.IsValid)
    {
        var id = model.ID;
        var _stated = _iPQSDService.Review(id, model);
        return RedirectToAction("Index");
    }
    return View(model);
}
Purpose: Remove a PQRSD requestAccess: SuperAdmin, AdminRequires confirmation before permanent deletion.

Request Types

The system categorizes requests into five types:
TypeSpanishDescription
PPeticionesFormal requests for information or services
QQuejasComplaints about service quality or conduct
RReclamosClaims regarding billing or service delivery
SSugerenciasSuggestions for improvements
DDenunciasReports of misconduct or violations

Validation Rules

The submission form enforces the following validations:

Required Fields

  • Citizen name (max 150 characters)
  • Valid email address
  • Subject line (max 150 characters)
  • Description text
  • Request type selection

Optional Fields

  • File attachment (PDF or image)

Integration Points

The PQRSD system integrates with the email notification service to alert administrators of new submissions. Ensure SMTP settings are configured in appsettings.json.

Best Practices

  • Provide clear, specific descriptions
  • Include relevant dates and reference numbers
  • Attach supporting documentation when available
  • Save your tracking code for future reference
  • Respond to requests within mandated timeframes
  • Provide comprehensive, helpful responses
  • Mark requests as answered promptly
  • Keep response language professional and clear

Build docs developers (and LLMs) love