لو بتشتغل فريلانسر أو بتدير شركة صغيرة وبتقضي آخر كل شهر ساعتين بتفتح فواتير AWS و Vercel و Claude و GitHub و Notion واحدة واحدة، السكربت اللي هنا هيخلي العملية دي 45 ثانية أوتوماتيك.
أتمتة استخراج فواتير Gmail إلى Google Sheets بـ Claude Haiku
الفكرة ببساطة: سكربت Python بيمرّ على Gmail، يدوّر على الإيميلات اللي فيها فاتورة آخر 30 يوم، يبعت محتواها لـ Claude Haiku 4.5 علشان يطلّع منها البيانات المنظمة (رقم الفاتورة، المورد، المبلغ، التاريخ، العملة)، ويضيف سطر في Google Sheet مخصص. كل ده بتكلفة أقل من 70 سنت في الشهر لو عندك 150 فاتورة.
المشكلة باختصار
لما تفتح Gmail في آخر الشهر هتلاقي 40-80 إيميل فاتورة متفرّقة بين نوتيفيكيشن وإعلانات. كل فاتورة لازم تاخدها وتكتبها يدوي في شيت. اللي بيحصل فعلاً:
- بتنسى فاتورة أو اتنين كل شهر، وبيبان الفرق في الضرايب.
- بتاخد من 90 لـ 120 دقيقة في الجمع، 70% منهم نسخ ولصق بلا قيمة.
- لو عندك محاسب خارجي، بتبعته شيت ناقص فبيرجعلك بأسئلة.
الحل مش "استخدم QuickBooks"، الحل إنك تأتمت الجزء اللي القالب بتاعه ثابت: البيانات جوه الإيميل نفسه.
المفهوم قبل ما ندخل في الكود: يعني إيه Structured Extraction؟
تخيّل إن عندك سكرتير جديد، جاهل تمامًا بالمحاسبة. بتديله كومة من 50 ورقة مخلوطة وبتقوله: "اقرا كل ورقة، ولو ده فاتورة، اكتب في الدفتر ده اسم الشركة، الرقم، والمبلغ". السكرتير مش لازم يفهم الضرايب. هو بس بيتعرّف على النمط ويحوّله لصفوف.
ده بالظبط اللي Claude Haiku بيعمله معاك. بنبعتله النص الخام للإيميل، وبنقوله: "رجّع لي JSON بالشكل ده بالظبط: {vendor, invoice_number, amount, currency, date, due_date}". لو الإيميل مش فاتورة أصلاً، بيرجّع null. ده اسمه Structured Extraction — استخراج بيانات منظمة من نص غير منظم.
علميًا: بنستخدم tool calling في Claude API مع JSON schema محدد، فالنموذج ملزم يرجّع output يطابق الـ schema. ده بيقلل hallucination لأقل من 1% على نصوص فيها بيانات واضحة زي الفواتير.
إعداد البيئة في 5 خطوات
- فعّل Gmail API من Google Cloud Console وحمّل ملف
credentials.json. - فعّل Google Sheets API على نفس الـ project.
- اعمل Service Account وشارك الـ Sheet معاه بصلاحية Editor.
- خد API key من
console.anthropic.com. - ثبّت المكتبات:
pip install anthropic google-auth google-auth-oauthlib \
google-api-python-client gspread python-dotenv