PHPackages                             ngoubaux/delatbabel-contacts - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Admin Panels](/categories/admin)
4. /
5. ngoubaux/delatbabel-contacts

ActiveLibrary[Admin Panels](/categories/admin)

ngoubaux/delatbabel-contacts
============================

Laravel contact management package.

v11.0(1y ago)04MITBladePHP ^8.1

Since Oct 30Pushed 1y agoCompare

[ Source](https://github.com/ngoubaux/delatbabel-contacts)[ Packagist](https://packagist.org/packages/ngoubaux/delatbabel-contacts)[ RSS](/packages/ngoubaux-delatbabel-contacts/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (3)Versions (2)Used By (0)

Contacts
========

[](#contacts)

[![StyleCI](https://camo.githubusercontent.com/14eb6975c262eb87b9f5cc3d618ed28fd0037c1c7cb933b88fafab00561affe3/68747470733a2f2f7374796c6563692e696f2f7265706f732f35313936363539312f736869656c64)](https://styleci.io/repos/51966591)[![Latest Stable Version](https://camo.githubusercontent.com/b64c23d601d964245e0bbccf473b512161ab60d4ba418a43b73b2eede1e71cdc/68747470733a2f2f706f7365722e707567782e6f72672f64656c6174626162656c2f636f6e74616374732f76657273696f6e2e706e67)](https://packagist.org/packages/ddpro/contacts)[![Total Downloads](https://camo.githubusercontent.com/27cf08644f4e580e96076689ca3fad83ab3a07d5933e55b434188d2a172e4a8e/68747470733a2f2f706f7365722e707567782e6f72672f64656c6174626162656c2f636f6e74616374732f642f746f74616c2e706e67)](https://packagist.org/packages/delatbabel/contacts)

A package to do simple contact management and storage for Laravel.

Ideal for use for e-commerce, CRM or other systems where contact management needs to be done.

This is not a full CRM system, but the idea is to be able to synchronise the contact list with a separate CRM system.

Goals
-----

[](#goals)

Storage of:

- Contacts
- Companies
- Addresses

Interface with external CRM systems. Target systems include anything that provides a reasonable API, starting with the open source systems. There is a list of [Top 10 Open Source CRM Systems](http://www.crmsearch.com/top-10-open-source-crm-systems.php)that we plan to integrate to. Other systems that have an API that we plan interfacing to include:

- [SalesForce](http://www.salesforce.com/)
- [Zoho](https://www.zoho.com/)

Installation
============

[](#installation)

Add these lines to your composer.json file:

```
    "require": {
        "delatbabel/contacts": "~1.0"
    },

```

Once that is done, run the composer update command:

```
    composer update

```

Alternatively just run this:

```
    composer require ngoubaux/delatbabel-contacts

```

Register Service Provider
-------------------------

[](#register-service-provider)

After composer update completes, add this line to your config/app.php file in the 'providers' array:

```
    Delatbabel\Contacts\ContactsServiceProvider::class,

```

Incorporate and Run the Migrations and Seeders
----------------------------------------------

[](#incorporate-and-run-the-migrations-and-seeders)

Finally, incorporate and run the migration scripts to create and seed the database tables as follows:

```
php artisan vendor:publish --force
php artisan migrate
php artisan db:seed
```

I have included a ContactSeeder which incorporates seeders for categories, config and keylists in the correct order. You can use this or not at your leisure. To use it, include ContactSeeder into your normal DatabaseSeeder class or whatever else you use to seed your database.

I have also included a ContactSampleSeeder which will seed the contacts database with a few sample companies (organisations) and individuals. You can take a look at this to create your own seeder, or maybe you want to seed by pulling data from a CSV file or importing from a CRM or something. It's up to you.

Usage Examples
==============

[](#usage-examples)

General usage example: TODO, although see the ContactSampleSeeder for simple examples for creating addresses, companies and contacts.

Geocoding
---------

[](#geocoding)

See the [Geocoding Intro on Google](https://developers.google.com/maps/documentation/geocoding/intro)for more information.

Geocoding is mostly implemented. Here is a sample URL for the geocoder:

The geocoder works within the Address model class to automatically use the Google API to get the components of the address from a partial address.

You can disable the geocoder by setting the config variable contacts.geocode.enable to false.

You can set up the geocoder to use an API key (which means you can go over the limit of 2500 requests per day) by setting contacts.geocode.use\_api\_key to true, and setting contacts.geocode.api\_key to the API key. See the ContactConfigSeeder for a seeder that sets these config variables in the database (in the configs table).

Usage limits:

-

API Keys:

-
-

Geocoding is free up to 2500 requests per day, if you need to go over that limit per server IP address then you need to obtain an API key.

TODO
====

[](#todo)

Zoho Integration
----------------

[](#zoho-integration)

Build integraton with Zoho. This seems to have a simple to use API.

example:

- POST URL
- POST DATA authtoken = (authtoken -- get one from Zoho), scope = crmapi
- Responds with a JSON structure -- examine this using postman.

Tasks:

- Build a generic call interface.
- Build a data mapper between the Zoho CRM API fields and our fields.
- Build the service to upload and download each record type.

Read this:

- [Zoho CRM Modules and Fields](https://www.zoho.com/crm/help/api/modules-fields.html) -- note that in Zoho they have the concept of "Modules", e.g. Leads, Accounts, Contacts, Potentials, etc for different types of contact (this is common in CRM systems) whereas in this package we have one contact table with different contact categories. E.g. in the sample data we set up the UK PM Office and David Cameron as "Lead" contact types. Also Zoho mixes company and contact data, whereas we keep it in separate tables.

These links are active when logged into Zoho CRM:

- [List of Leads](https://crm.zoho.com/crm/ShowTab.do?module=Leads)
- [Auth Tokens](https://accounts.zoho.com/u/h#sessions/userauthtoken)
- [Generate Auth Token](https://crm.zoho.com/crm/ShowSetup.do?tab=developerSpace&subTab=api)

Salesforce.com Integration
--------------------------

[](#salesforcecom-integration)

- Much the same tasks as above.
- [Force.com REST API](https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/)

Others
------

[](#others)

Other integrations will probably happen on demand but the top ones would probably be:

- [SugarCRM](http://www.sugarcrm.com/)
- [vTiger](https://www.vtiger.com/)
- [CiviCRM](https://civicrm.org/)
- [X2CRM](http://www.x2crm.com/) -- created by [John Roberts](https://en.wikipedia.org/wiki/John_Roberts_%28software_entrepreneur%29)after he left SugarCRM.

More Features
-------------

[](#more-features)

Without crossing the line into full CRM, this is what I think we should be implementing:

- Contact, Company and Address deduplication.
- i18n, including better name handling and name sort order generation ("Last, First" or "First Last" or "Last van der, First") (in progress).

Architecture
============

[](#architecture)

This has been ported across from an old Laravel 3 package that handled contact management inside an e-commerce system. An early idea was to turn this into a fully fledged CRM system, but there are already several good CRM systems out there and I felt no need to re-invent the wheel.

However as a basic starting point for any e-commerce site, contact and customer management is a requirement. Being able to synchronise data from the e-commerce system to the CRM system would be an advantage.

Data Structures
---------------

[](#data-structures)

Base Tables:

- addresses
- companies
- contacts
- crms

Relations:

- companies many:many addresses
- contacts many:many addresses
- companies 1:many contacts
- contacts many:many categories (from delatbabel/nestedcategories)
- companies many:many categories

The many:many pivot tables on addresses have start\_date and end\_date fields so that past and current addresses can be stored if required.

Dependencies
------------

[](#dependencies)

These are automatically handled by composer:

- [NestedCategories](https://github.com/delatbabel/nestedcategories) for contact and company categories.
- [Keylists](https://github.com/delatbabel/keylists) for key/value list storage such as address types and statuses.
- [NestedCategories](https://github.com/delatbabel/nestedcategories) for contact and company categories.

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance38

Infrequent updates — may be unmaintained

Popularity3

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 83.6% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

560d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/3c18315a6809d3940f1277ddebaf7e1931553b5aacb67be0a2d0a3306962bbc1?d=identicon)[ngoubaux](/maintainers/ngoubaux)

---

Top Contributors

[![delatbabel](https://avatars.githubusercontent.com/u/2335362?v=4)](https://github.com/delatbabel "delatbabel (112 commits)")[![haidangibm](https://avatars.githubusercontent.com/u/6229550?v=4)](https://github.com/haidangibm "haidangibm (22 commits)")

---

Tags

laraveladdresscrmcontact

### Embed Badge

![Health badge](/badges/ngoubaux-delatbabel-contacts/health.svg)

```
[![Health](https://phpackages.com/badges/ngoubaux-delatbabel-contacts/health.svg)](https://phpackages.com/packages/ngoubaux-delatbabel-contacts)
```

###  Alternatives

[dwij/laraadmin

LaraAdmin is a Open source Laravel Admin Panel / CMS which can be used as Admin Backend, Data Management Tool or CRM boilerplate for Laravel with features like CRUD Generation, Module Manager, Media, Menus, Backups and much more

1.6k68.7k](/packages/dwij-laraadmin)[slowlyo/owl-admin

基于 laravel、amis 开发的后台框架~

61214.2k26](/packages/slowlyo-owl-admin)[lara-zeus/tartarus

simple multi tenants

112.6k](/packages/lara-zeus-tartarus)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
