Denetim Raporları
inspection şablonu, sohbet üzerinden toplanan fotoğrafları tamamlanmış bir mülk denetim PDF'ine dönüştürür. Bu sıradan bir PDF Generator render'ı değildir: rapor gövdesini akışınız kurmaz. Fotoğrafları sunucu saklar, alanlara göre gruplar ve dokümanı kendisi düzenler. Akışınız yalnızca mülk bilgilerini ve istisnaları gönderir.
Bir denetim akışı kurarken veya değiştirirken bu sayfayı kullanın.
Akış bu şablonla nasıl konuşur
Bir denetim iki uç nokta kullanır:
| Adım | Uç nokta | Ne yapar |
|---|---|---|
| Denetim sırasında | POST /api/v1/inspection/capture | Her fotoğraf grubunu o anki alana kaydeder |
| Sonunda | POST /api/v1/pdf/render | Kaydedilen fotoğrafları alır ve raporu üretir |
Fotoğraflar geldikçe kaydedilir, bu yüzden uzun bir denetim hiçbir zaman bellekte tutulmaz. Render adımı onları bir kez alır — aynı oturumun ikinci render'ı fotoğrafları tekrarlamaz, bekleyen fotoğrafı olmayan bir oturum ise hiç dosya üretmez.
Ne gönderirsiniz
Render çağrısı bir source nesnesi taşır:
{
"templateId": "inspection",
"source": {
"type": "inspection",
"sessionId": "whatsapp-447700900000-447700900001",
"meta": {
"address": "12 Elm Road, Flat 3, London HA12 3NF",
"assessor": "Jane Doe",
"company": "Inspection Experts",
"reportType": "checkin",
"guided": false,
"propertyNo": "12",
"postcode": "HA12 3NF"
}
}
}
meta alanları
| Alan | Açıklama |
|---|---|
address | Kapakta basılan mülk adresi |
assessor | Denetçi adı — kapakta ve görevli imza satırında |
tenant | Kiracı adı — kiracı imza satırında. Boş bırakmak için göndermeyin |
company | Kapakta görünen operatör firma adı |
reportType | interim, checkin veya checkout. Başka bir değer nötr başlığa düşer |
guided | Yalnızca kiracının kendi yürüttüğü denetimlerde true — kapakta Guided Self Inspection yazar |
propertyNo, postcode | E-posta dosya adı için: <YYYYMMDD> <propertyNo> <postcode>.pdf |
logo | Kapak logosu için varlık referansı |
geo | { latitude, longitude } — kapakta koordinat ve harita bağlantısı olarak basılır |
areaComments | { "Bedroom 1": ["not", …] } — ilgili bölümün altında, fotoğraflardan sonra Additional Comment olarak basılır. Odalar, External Areas ve Meters & Keys dahil her bölüm not taşıyabilir |
keyDetails | { numberOfKeys, takenFrom, handedTo } — Keys bölümünde basılır |
skippedAreas | Denetçinin "yok" dediği servis alanları — aşağıya bakın |
Tüm alanlar isteğe bağlıdır ve sunucunun tanımadığı değerler basılmaz, düşürülür. Tek istisna:
address, assessor, tenant ve company kapağa gönderdiğiniz gibi, uzunluk sınırı olmadan
basılır. Bu alanlar üzerinden bir enjeksiyon mümkün değildir (her değer kaçışlanır) ancak düzeltme
de yapılmaz — doğru göndermek sizin sorumluluğunuzdadır.
Mülkte bulunmayan alanlar
Check-in ve check-out raporları beş servis alanı bekler: elektrik, gaz ve su sayaçları, anahtarlar ve dedektörler. Her mülkte beşi birden bulunmaz.
skippedAreas alanını şu kümeden dikey çizgiyle ayrılmış bir liste olarak gönderin:
electricity-meter | gas-meter | water-meter | keys | detectors
Her biri rapordan kaybolmak yerine kısa bir not basar:
Detectors
Not available — reported by the inspector.
Bu not önemlidir: onsuz okuyucu "bu mülkte dedektör yok" ile "dedektörler unutulmuş" arasını ayırt edemez. Listelediğiniz ama yine de fotoğrafladığınız bir alan fotoğraflarını korur, not basılmaz.
Bir denetimi zorla bitirmek tüm eksik alanları birden geçer, böylece gerçekten unutulmuş bir alan fark edilmez. Yalnızca bulunmayan alanı listelemek, kontrolün geri kalanını yerinde bırakır.
Yorumlar nerede görünür
Serbest metin notlar, yazıldıkları anda denetlenen alana kaydedilir ve o alanı kapatır — fotoğrafların altında basılırlar, alan tablosuyla görseller arasında değil.
Yalnızca numaralı odalar değil, raporun her bölümü not kabul eder:
| Bölüm | Kullanılacak anahtar |
|---|---|
| Bir oda | Etiketi — "Bedroom 1" |
| External Areas | Havuz başlığı ya da içindeki herhangi bir oda ("Garden") — hepsi birleştirilir |
| Meters & Keys | Alan adı — "Gas Meter", "Keys" |
| Bulunmadığı bildirilen alan | Adı. Not, "mevcut değil" satırının altına basılır ve neden atlandığını kayda geçirir |
Büyük/küçük harf, fazladan boşluk ve - veya / ayırıcıları eşleşmeyi etkilemez: bedroom-1 ile
Bedroom 1 aynı alandır. Raporda karşılığı olmayan bir not, başlıksız basılmak yerine düşürülür.
Her fotoğrafın çekilme zamanı
Her fotoğraf kendi zaman damgasını, İngiltere yerel saatiyle ve saat dilimi adıyla birlikte basar —
14 Aug 2026, 18:02 BST. Saat dilimi adı önemlidir: Ekim'deki saat değişiminde bir saat arayla
çekilmiş iki fotoğraf da 01:30 görünür, ikisini yalnızca BST / GMT ayırır.
Zaman, capture çağrısındaki captureTs alanından gelir; bu WhatsApp'ın mesajın gönderildiğini
bildirdiği andır. Her seferinde gönderin. Göndermezseniz rapor, fotoğrafın sunucuya ulaştığı ana
geri düşer — çoğu zaman yakındır, ama bir yeniden deneme, kuyruk birikmesi veya bodrumda çekmeyen
bir telefon bunu saatlerce kaydırabilir ve rapor okuyucuya bunu hiçbir şekilde belli etmez.
Sorun giderme
Raporda hiç fotoğraf yok
Kayıt çağrıları, akışın çalıştığı ortama ulaşmamıştır. /api/v1/inspection/capture uç noktasından
gelen 404, akış kimliğinin o sunucuda bulunmadığı anlamına gelir. Render bu durumda boş bir rapor
değil, hiçbir dosya üretmez.
Rapor, mülkte bulunmayan bir alanı istemeye devam ediyor
O alan beş servis alanından biridir ve ne fotoğrafı ne de skippedAreas kaydı vardır. Alanın kısa adını
skippedAreas listesine ekleyin.
Kapak başlığı yanlış
reportType değeri interim, checkin veya checkout ile eşleşmemiştir — bir yazım hatası nötr
başlığa düşer. Yanlış yazılan tip hangi alanların zorunlu olduğunu da değiştirir, bu yüzden denetim
başlamadan önce doğrulayın.
Kapakta denetçi için "Guided Self Inspection" yazıyor
guided değeri true gönderilmiştir. Oturum, mülkü kendi gezen bir kiracıya değil bir denetçiye aitse
false gönderin.
İlgili
- PDF Generator — render çağrısını yapan node
- Prediction API