Relié à la fiche publique du lieu : elle affiche « Vérifié par {{ currentOrg.name }} » et reprend le téléphone et les horaires.
Ce lieu existe peut-être déjà sur la carte publique :
{{ c.name }} · {{ categoryLabel(c.category) }} · à {{ c.distance_m }} m
Si la personne n’a pas encore de compte Ndahunu, une invitation est gardée : elle rejoint l’espace dès qu’elle crée son compte avec cet e-mail (ou en ouvrant le lien d’invitation). Les agents retrouvent leur travail dans l’app (« Mon travail » sur la carte). Le rôle Lecture permet de consulter l’espace et le bilan sans rien modifier.
Reliez votre logiciel à Ndahunu : ce que vous y enregistrez ({{ integrationScope }}) arrive automatiquement dans cet espace, et votre logiciel est prévenu de chaque changement fait sur le terrain. À transmettre à votre informaticien.
1. Clés d’API
Une clé par système (site, logiciel). Elle donne accès aux données de {{ currentOrg.name }} uniquement. Ne la publiez jamais, ne l’envoyez pas par message : donnez-la directement à votre informaticien.
Votre nouvelle clé (affichée une seule fois) :
{{ integration.newKey }}
Nom
Début de la clé
Permissions
Créée
Dernière utilisation
{{ k.name }}
{{ k.key_prefix }}…
{{ scopeLabel(k) }} · expire le {{ formatDay(k.expires_at.slice(0, 10)) }}
Adresse (https) que Ndahunu appelle à chaque changement : livraison, mission commencée ou terminée par un agent, signalement d’un habitant reçu. Chaque appel est signé avec le secret ci-dessous (en-tête X-Ndahunu-Signature, HMAC-SHA256 du corps).
Secret de signature : {{ integration.webhookSecret }}
Dernières notifications
Sans réponse correcte (code 2xx), Ndahunu réessaie après 1, 5 et 30 minutes puis 2 heures (5 essais au plus).
Adresse de base : {{ apiBase }}. Chaque appel est un POST avec les en-têtes apikey: {{ anonKeyShort }} (clé publique du projet, ci-dessous) et Content-Type: application/json, et la clé secrète de l’organisation dans le corps (api_key).
Créer une livraison (à appeler à chaque commande)
{{ curlCreate }}
Champs : address_code (obligatoire : code Ndahunu du client, avec ou sans le dernier caractère), external_id (n° de commande : une commande envoyée deux fois ne crée qu’une livraison), reference, recipient_name, recipient_phone, notes, scheduled_for (AAAA-MM-JJ). La réponse contient l’état et un lien de suivi (tracking_url) à envoyer au client.
Connaître l’état d’une livraison
{{ curlStatus }}
Annuler une livraison
{{ curlCancel }}
Notification reçue par votre système
{{ webhookExample }}
États : a_livrer, en_route, livre, echec, annule. Erreurs : code d’adresse introuvable ou incorrect, clé invalide ou révoquée.
Lieu : pour chaque élément, mission ou zone, un code Ndahunu (address_code) ou des coordonnées GPS (latitude, longitude). external_id est votre propre identifiant : renvoyer le même identifiant met à jour l’élément au lieu d’en créer un autre.
Créer une mission de terrain
{{ curlTask }}
Champs : title (obligatoire), kind (contrôle, réparation, intervention…), details, priority (basse, normale, haute, urgente), due_date, asset_external_id (élément de l’inventaire concerné : la mission est alors placée au même endroit). Le chef l’attribue ensuite à un agent, qui la reçoit dans l’app.
Connaître l’état d’une mission, l’annuler
{{ curlTaskStatus }}
{{ curlCancelTask }}
Notification quand l’agent termine
{{ webhookTaskExample }}
Évènements : task.created, task.en_cours, task.termine (avec le compte rendu), task.annule.
Ajouter ou mettre à jour un élément de l’inventaire
{{ curlAsset }}
Champs : category et name (obligatoires), status (actif, travaux, hors_service, projet), notes, attributes (vos champs libres), path (tracé d’une rue ou d’une route : [[latitude, longitude], …]). Envoyez tous les champs à chaque fois.
Retirer un élément
{{ curlDeleteAsset }}
Publier ou mettre à jour une zone
{{ curlZone }}
geometry : tracé {"type":"line","points":[…]}, surface {"type":"polygon","points":[…]} ou cercle {"type":"circle","center":[lat, lng],"radius":mètres}. severity : info, moyenne, haute. Avec is_public: true, la zone s’affiche pour tous sur la carte et dans les itinéraires de l’app.
Lever une zone (route rouverte, alerte terminée)
{{ curlEndZone }}
Récupérer les signalements des habitants
{{ curlReports }}
Renvoie jusqu’à 500 signalements modifiés depuis since (lieu, thème, description, nom et téléphone de l’auteur). Chaque nouveau signalement est aussi envoyé à votre adresse de notification (report.received).
Mettre à jour un signalement
{{ curlReportStatus }}
États : recu, en_cours, resolu, rejete. L’habitant est prévenu dans l’app.
Cet espace est réservé aux membres de l’organisation.
Accès réservé aux administrateurs.
État de Ndahunu
Base à jour (version {{ automation ? automation.schema_version : requiredSchema }}).
Base pas à jour : exécutez la migration {{ requiredSchema }} dans Supabase (dossier supabase/migrations). Version actuelle : {{ schema || 'inconnue' }}.
{{ automation.automation ? 'Tâches automatiques actives (rappels, nouveaux essais des notifications).' : 'Tâches automatiques inactives : activez pg_cron dans Supabase (Database → Extensions), puis réexécutez la migration 049.' }}
Aucun espace ne traite ce thème à cet endroit. Transmettez-les à un espace, ou ajoutez le thème et le village à un espace (onglet Organisations) : Ndahunu proposera alors de lui transmettre ceux qui correspondent.