Is there a good computer program for searching for endomorphisms between finite algebras which make diagrams commute? Is this problem NP-complete?

Let $(X,*),(Y,*),(Z,*)$ be finite algebras. The binary operations $*$ are not required to satisfy any identities though I am interested in the special case where $*$ is associative. Suppose that $f:X\rightarrow Z,g:Y\rightarrow Z$ are homomorphisms. Then is there already an optimized computer program that searches for homomorphisms $\phi:X\rightarrow Y$ where $g\circ\phi=f$? Is the problem of finding such a homomorphism $\phi$ an NP-complete problem? Is this problem still NP-complete when all operations are associative?

• The name Agnes Szendrei pops to mind. Though it may be someone else who did the work, I think she was involved in computer search and enumeration of morphisms (whether iso, hom, or endomorphisms I don't remember). You might search such work within the last twenty years for the program her team used. Gerhard "Sorry I Don't Remember More" Paseman, 2017.02.11. – Gerhard Paseman Feb 11 '17 at 19:23
• I found this software labix.org/python-constraint. I don't know if it is good or not though. – Joseph Van Name Mar 22 '17 at 0:08